Формат отображения ASP.NET MVC не форматирует DateTime просто строку даты - PullRequest
4 голосов
/ 25 июня 2010

У меня настроен формат отображения:

<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) %>

То есть вывод "должен" быть

6/24/1982

Но, к сожалению, вывод составляет

6/24/1982 12:00:00

Кто-нибудь знает, чего мне здесь не хватает?

1 Ответ

6 голосов
/ 25 июня 2010

Копая источник MVC2 из Codeplex, я думаю, вам нужно использовать EditorFor, а не TextBoxFor.TextBoxFor использует

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

, игнорируя атрибуты формата (хотя он просматривал их через классы ModelMetadata), тогда как EditorFor и DisplayFor построены на внутренних TemplateHelpers, которые действительно используют атрибуты формата.

...