您可以使用编辑器模板。
在您的视图模型上:
[DisplayFormat(DataFormatString = "{0:d}", ApplyFormatInEditMode = true)]
public DateTime? SomeDate { get; set; }
在您看来:
<%= Html.EditorFor(x => x.SomeDate) %>
如果由于某种原因设计此应用程序的人没有使用视图模型并决定直接将他的域模型传递给视图并且您无法修改这些域模型,您可以在视图中执行此操作:
<%= Html.EditorFor(x => x.SomeDate, "ShortDate") %>
然后定义一个自定义编辑器模板(~/Views/Shared/EditorTemplates/ShortDate.ascx
):
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<DateTime?>" %>
<%= Html.TextBox(
"",
Model.HasValue ? Model.Value.ToString("d") : "",
new { @class = "text-box single-line" }
) %>