asp.net-mvc - EditorFor(日期): How to display empty text box?

标签 asp.net-mvc asp.net-mvc-2

<%: 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/

相关文章:

asp.net-mvc - 使用 asp.net mvc 的网站和 Web 应用程序

asp.net-mvc - 将 Fiddler 与 asp.net MVC 3 一起使用

asp.net-mvc-3 - 如何在 Razor View 中编写递归函数?

asp.net-mvc-2 - 用于实现 CanExecute 样式命令的 ASP MVC 2 模式

c# - 当 IDENTITY_INSERT 设置为 OFF 时,无法在表 'ClientDetails' 中为标识列插入显式值

mysql - 什么版本的 MySQL Connector 可以与 Mono 2.10.1 一起使用

jquery - 如何使用 jQuery 和 ASP.NET MVC 从 AJAX 调用返回错误消息?

c# - 在 Razor View 引擎中将 HTML 元素作为 Function<> 传递

asp.net-mvc - 如果客户端不可用,如何自动重载 DELETE 和 PUT?

c# - NHibernate - 如何处理 NonUniqueObjectException?