我的目的是将JQuery用户界面数据报警器应用到我的整个站点,方法是按照这个post ASP.NET MVC 2模板创建一个ASP.NET MVC 2模板。
@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>
} 关联的代码完全按照描述的方式工作;但是,除了几个DateTime字段之外,模型还包含一个可为空的DateTime字段,导航到页面会导致以下错误:
传递给字典的模型项为null,但此字典需要一个类型为“System.DateTime”的非空模型项。
事实上,即使在路径视图/Shared/EditorTemplate中创建一个名为"DateTime“的空部分也足以生成错误,这意味着即使重写了模板,它也可能仍然不能处理空值。索引视图中的代码(通过MvcScaffolding通过EF代码优先生成)对于可空和不可空的DateTime字段都是相同的:
<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是可能的吗?
发布于 2011-09-20 18:40:17
您指定了一个DateTime模型,它是一个值类型,不能为null。这就是错误信息告诉你的。尝试将模型更改为可为空的DateTime。
@model DateTime?
@{...}这应该能解决问题。
发布于 2011-10-06 19:15:23
菲尔是对的(空模型),我有一个关于这个http://www.asp.net/mvc/tutorials/using-the-html5-and-jquery-ui-datepicker-popup-calendar-with-aspnet-mvc-part-1的完整教程
https://stackoverflow.com/questions/7480123
复制相似问题