首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >可空DateTime、EditorTemplates、JQ UI DatePicker

可空DateTime、EditorTemplates、JQ UI DatePicker
EN

Stack Overflow用户
提问于 2011-09-20 04:23:42
回答 2查看 2.4K关注 0票数 1

我的目的是将JQuery用户界面数据报警器应用到我的整个站点,方法是按照这个post ASP.NET MVC 2模板创建一个ASP.NET MVC 2模板

代码语言:javascript
复制
@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字段都是相同的:

代码语言:javascript
复制
    <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是可能的吗?

EN

回答 2

Stack Overflow用户

发布于 2011-09-20 18:40:17

您指定了一个DateTime模型,它是一个值类型,不能为null。这就是错误信息告诉你的。尝试将模型更改为可为空的DateTime。

代码语言:javascript
复制
@model DateTime?

@{...}

这应该能解决问题。

票数 3
EN

Stack Overflow用户

发布于 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的完整教程

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7480123

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档