<%: Html.EditorFor(model => model.date)%>
加载时如何使此代码显示空文本框? Model.date 不可为空,因此始终显示非空值。如何强制它以空值开头?
注意:我不想让它可以为空,因为在实际代码中,它与必须具有值的模型属性相关联(顺便说一句,我有一个
Required
该属性的数据注释)。让它可以为空是没有意义的。用默认日期(例如今天)替换它也不是一种选择,因为在这种情况下的重点是确保用户不会忘记主动指定日期。TIA。
最佳答案
问题是如果 Model.Date 属性不可为空,那么它将始终有一个值。过去,我为 DateTime 创建了一个编辑器模板(它也使用了 jquery 日期选择器)。这允许您处理您可能正在寻找等于 DateTime.MinValue 的日期的空值。
所以你的编辑器模板看起来像:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<System.DateTime>" %>
<%=Html.TextBox("", (Model != DateTime.MinValue ? Model : string.Empty)) %>
您不必担心 name 的空字符串,因为它实际上只填充了 html 前缀就足够了。
本文还介绍了如何创建编辑器模板。
http://geekswithblogs.net/michelotti/archive/2010/02/05/mvc-2-editor-template-with-datetime.aspx
就我个人而言,我希望我的 View 模型中的 DateTime 可以为空,但不会在我的域模型中使用两者之间的验证
关于asp.net-mvc - EditorFor(日期): How to display empty text box?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4303523/