エディター テンプレートを使用できます。
ビューモデルで:
[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" }
) %>