我正在尝试在我的视图中添加一个复选框。 以下是我在视图中的内容:
@Html.CheckBoxFor(model => model.Chart)
注意,我得到以下内容:无法将lambda表达式转换为预期的委托类型,因为块中的某些返回类型不能隐式转换为委托返回类型。
我的模型中有以下内容:
public bool ? Chart { get; set; }
注意Chart是一个可以为空的布尔值。
我也尝试过以下操作:
@Html.CheckBoxFor(model => model.Chart.Value)
但是我得到:Nullable对象必须有一个值。
答案 0 :(得分:0)
您无法使用CheckBoxFor()
绑定到bool?
(可为空)。该方法接受bool
作为表达式。
复选框有2个状态(on / of或true/false
),bool?
有3个状态(true/false/null
)。
请注意,方法的签名是
public static MvcHtmlString CheckBoxFor<TModel>(
this HtmlHelper<TModel> htmlHelper, Expression<Func<TModel, bool>> expression)
要绑定到bool?
,请使用@Html.EditorFor()
生成包含3个值的下拉列表。
或者,如果您想要一个复选框,请使用视图模型并将属性设为bool
。