2010-06-24 2 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) %> 

Значение что выход "должен" быть

6/24/1982

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

6/24/1982 12:00:00 AM

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

+0

Я не знаю синтаксис лямбда VB.NET, но я думаю, что второй параметр в вашем TextBoxFor может быть излишним - он может интерпретировать это как объект атрибутов HTML. Однако это не вызовет вашу проблему. – Rup

ответ

6

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

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

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

+0

РедакторДля работы. благодаря –

Смежные вопросы