EditorFor(日期):如何显示空文本框?

Ser*_*ier 6 asp.net-mvc asp.net-mvc-2

<%: Html.EditorFor(model => model.date)%>
Run Code Online (Sandbox Code Playgroud)

如何在加载时使此代码显示为空文本框?Model.date不可为空,因此始终显示非空值.如何强制它以空值开始?

注意:我不想让它可以为空,因为在实际代码中,它绑定到必须具有值的模型属性(BTW,我有Required该属性的数据注释).让它可以为空是没有意义的.以今天的默认日期替换它不是一种选择,因为这种情况下的要点是确保用户不要忘记主动指定日期.

TIA.

Mar*_*ark 8

问题是如果Model.Date属性不可为空,那么它将始终具有值.在过去,我为DateTime创建了一个编辑器模板(它也使用了jquery日期选择器).这允许您处理您的空值,您可能希望找到等于DateTime.MinValue的日期.

所以你的编辑器模板看起来像:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<System.DateTime>" %>
<%=Html.TextBox("", (Model != DateTime.MinValue ? Model : string.Empty)) %>
Run Code Online (Sandbox Code Playgroud)

你不必担心名称的空字符串,因为这实际上只填充了html前缀,这应该足够了.

本文还介绍了如何创建编辑器模板.

http://geekswithblogs.net/michelotti/archive/2010/02/05/mvc-2-editor-template-with-datetime.aspx

我个人认为我的视图模型中的DateTime可以为空,但在我的域模型中没有使用其间的验证