【发布时间】:2010-03-22 08:30:40
【问题描述】:
CheckBox 连接到的字段可以为空。
在我看来,我收到以下错误:
不能隐式转换类型'bool?' '布尔'
<%= Html.CheckBoxFor(model => model.Product.Exclusive) %>
如何在不更改数据库设计的情况下修复它?
【问题讨论】:
标签: asp.net-mvc-2
CheckBox 连接到的字段可以为空。
在我看来,我收到以下错误:
不能隐式转换类型'bool?' '布尔'
<%= Html.CheckBoxFor(model => model.Product.Exclusive) %>
如何在不更改数据库设计的情况下修复它?
【问题讨论】:
标签: asp.net-mvc-2
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) %>
【讨论】: