我正在使用 twitter 引导框架,因此为了让 EditorFor 和 DisplayFor 方法输出我需要的内容,我为字符串、文本、密码等每种类型创建了自定义模板。对于我的登录页面,我想要一个 RememberMe bool,所以和以前一样,我创建了以下模板并放入 Boolean.cshtml:
@model bool
<div class="control-group">
<div class="controls">
<label class="checkbox">
@Html.CheckBoxFor(m => m, new {@class = "checkbox"})
@Html.LabelFor(m => m)
</label>
</div>
</div>
很简单,但是当我使用时:
@Html.EditorFor(m => m.RememberMe)
我收到一个异常,说基于的值不能为空:
The model item passed into the dictionary is null, but this dictionary requires a non-null model item of type 'System.Boolean'.
我错过了什么?似乎它应该是直截了当的。模型对象上的字段如下所示:
[Display(Name = "Remember me?")]
public bool RememberMe { get; set; }
谢谢。
更新:所以看起来最终是创建一个空的视图模型对象并将其传递给视图,而不是让 MVC 自己创建一个。