我的意图是通过创建一个EditorTemplate按照这个帖子ASP.NET MVC 2 Templates可空日期时间,EditorTemplates,JQ UI的DatePicker
@model DateTime
@{
string name = ViewData.TemplateInfo.HtmlFieldPrefix;
string id = name.Replace(".", "-");
<div class="editor-label">
@Html.LabelFor(model => model)
</div>
<div class="editor-field, datepicker">
@Html.EditorFor(model => model)
@Html.ValidationMessageFor(model => model)
</div>
}
相关的代码工作完美地描述了jQuery UI日期选择器适用于我的整个网站;但是,除了多个DateTime字段,模型还包含1个可为空的DateTime字段并导航到页面结果中的此错误:
传递到字典中的模型项目为null,但此字典需要非null模型项目类型'System.DateTime'。
事实上,即使在路径Views/Shared/EditorTemplates中创建一个名为“DateTime”的空白部分也足以产生错误,这表明即使模板被重写,仍然可能无法处理空值。在索引视图(通过EF代码优先通过MvcScaffolding生成)的代码是相同的两个可空和不可为空的日期时间字段:
<div class="editor-label">
@Html.LabelFor(model => model.ItemInstance.iArrivalDate)
</div>
<div class="editor-field,datepicker">
@Html.EditorFor(model => model.ItemInstance.iArrivalDate)
@Html.ValidationMessageFor(model => model.ItemInstance.iArrivalDate)
</div>
那么,是否可以修改模板来处理可空的DateTime?