ASP.NET MVC显示格式不将DateTime格式化为日期字符串

Cha*_*ell 4 asp.net-mvc metadata string-formatting

我的显示格式设置如此

<DisplayName("birthdate")> _
<DisplayFormat(ApplyFormatInEditMode:=True, DataFormatString:="{0:MM/dd/yyyy}")> _
Public Property BirthDate As DateTime
Run Code Online (Sandbox Code Playgroud)

然后在视图中我有以下内容

<%: Html.TextBoxFor(Function(model) model.BirthDate, Model.BirthDate)%>
<%: Html.ValidationMessageFor(Function(model) model.BirthDate) %>
Run Code Online (Sandbox Code Playgroud)

意味着输出"应该"

1982年6月24日

但不幸的是,输出是

6/24/1982 12:00:00 AM

有谁知道我在这里可能会缺少什么?

Rup*_*Rup 6

通过从Codeplex上的MVC2源挖掘,我最好的猜测是,你需要使用EditorFor没有TextBoxFor.TextBoxFor使用

string valueParameter = Convert.ToString(value, CultureInfo.CurrentCulture);
Run Code Online (Sandbox Code Playgroud)

忽略格式属性(虽然它确实通过ModelMetadata类查找它们),而EditorFor和DisplayFor构建在使用格式属性的内部TemplateHelpers上.