2010-06-24 57 views
4

我有我的顯示格式設置爲使ASP.NET MVC顯示格式不格式化的DateTime只是日期字符串

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

然後在視圖我有以下

<%: Html.TextBoxFor(Function(model) model.BirthDate, Model.BirthDate)%> 
<%: Html.ValidationMessageFor(Function(model) model.BirthDate) %> 

意義該輸出 「應該」 是

1982年6月24日

但不幸的是,輸出

1982年6月24日12:00:00 AM

有誰知道我會在這裏失去了?

+0

我不知道VB.NET lambda語法,但我認爲TextBoxFor中的第二個參數可能是多餘的 - 它可能會將其解釋爲HTML屬性對象。但是,這不會導致你的問題在這裏。 – Rup 2010-06-24 23:46:03

回答

6

從Codeplex挖掘MVC2源碼,我最好的猜測是你需要使用EditorFor而不是TextBoxFor。 TextBoxFor使用

string valueParameter = Convert.ToString(value, CultureInfo.CurrentCulture); 

忽略格式屬性(儘管它找一找通過ModelMetadata類),而EditorFor和DisplayFor是建立在內部TemplateHelpers其確實使用格式屬性。

+0

EditorFor工作。謝謝 – 2010-06-25 00:09:29