CheckBox连接的字段可以为空。
在我看来,出现以下错误:
无法隐式转换类型“布尔”?
“布尔”
<%= Html.CheckBoxFor(model => model.Product.Exclusive) %>
我如何在不更改数据库设计的情况下进行修复?
最佳答案
Exclusive不能为Nullable,在评估表达式时,它对ViewEngine没有意义。它必须选中或不选中复选框,并使用true
或false
值进行响应。您的模型需要具有bool
值,但这并不意味着您的数据库必须知道这一点。您只需要在数据库和模型之间的某个地方进行翻译,例如。 Model.Exclusive = DAO.Exclusive ?? false
。
在不知道null在数据模式中代表什么或如何生成模型对象的情况下,很难为您提供更多细节。
编辑:尚未测试过,但您可能会摆脱一些简单的事情
public bool NoNullExclusive
{
get { return Exclusive ?? false; }
set { Exclusive = value; }
}
并替换
<%= Html.CheckBoxFor(model => model.Product.Exclusive) %>
与
<%= Html.CheckBoxFor(model => model.Product.NoNullExclusive) %>