【发布时间】:2013-01-03 18:16:17
【问题描述】:
我正在使用 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 自己创建一个。
【问题讨论】:
-
您可以尝试使用数据注释
[DefaultValue(false)]设置RememberMe默认值
标签: c# .net asp.net-mvc razor