2013-03-27 2 views
0

В настоящее время я пытаюсь установить формат даты в своем приложении ASP.NET MVC.Ошибка формата даты MVC в режиме редактирования

Я использую следующий код для выполнения этой

модель:

[DataType(DataType.Date), DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode=true)] 
public Nullable<System.DateTime> Date_Of_Birth { get; set; } 

вид:

<div class="editor-field"> 
      @Html.EditorFor(model => model.Date_Of_Birth) 
      @Html.ValidationMessageFor(model => model.Date_Of_Birth) 
     </div> 

Это работает, как ожидалось в режиме 'Подробнее'. Тем не менее, когда я вхожу в режим «Edit» в поле отображается следующим образом

enter image description here

Требуемый формат даты появится в текстовом поле, наряду с тем, что выглядит как дата по умолчанию подборщика с. Это, очевидно, не то, что я искал. Я просто хотел, чтобы дата была отформатирована правильно. Я также планировал использовать jQuery date picker, поэтому я тоже не хочу, чтобы вы выбрали дату.

У кого-нибудь есть решение?

ответ

0

Самое простое решение (при условии, что вы хотите, чтобы все поля редактирования для дат выглядели одинаково) заключается в замене шаблона на Html.EditorFor() для объектов типа DateTime. Таким образом, вы можете создать любое поведение, которое вы хотите, в самом шаблоне, тем самым также сохраняя логику вида на уровне представления.

Основной способ сделать это, чтобы создать файл с именем DateTime.cshtml (я думаю - это DateTime.ascx при использовании в WebForms просмотра двигатель, но вы используете бритву ...) и поместить его в ~/Views/Shared/EditTemplates.

У Брэда Уилсона есть excellent guide on his blog, который я настоятельно рекомендую вам проверить.

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