CheckBox连接的字段可以为空。
在我看来,我收到以下错误:
无法隐式转换类型'bool?' 'bool'
<%= Html.CheckBoxFor(model => model.Product.Exclusive) %>
如何在不更改数据库设计的情况下修复它?
答案 0 :(得分:18)
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) %>