Дата не отображается из модели в формате ввода HTML
Я пытаюсь отобразить ввод типа даты при создании и редактировании Razor Views... Средство выбора даты работает нормально, но при редактировании я получаю значение из модели, но средство выбора даты не отображает его...
Посмотреть
<div class="form-group form-md-line-input">
@Html.TextBoxFor(model => model.InitialDate, new { @class = "form-control", type = "date" })
@Html.ValidationMessageFor(model => model.InitialDate)
@Html.LabelFor(model => model.InitialDate)
</div>
модель
public Nullable<System.DateTime> InitialDate { get; set; }
Я пытался использовать DataAnnotations
но происходит то же самое, что средство выбора даты позволяет мне выбирать только дату создания, но при редактировании она не отображает дату из модели, хотя, когда я смотрел на HTML-код, который отображается, устанавливается значение для даты. но элемент управления не отображает его.
HTML View
<input class="form-control" data-val="true" data-val-date="The field InitialDate must be a date." id="InitialDate" name="InitialDate" type="date" value="3/3/2015 12:00:00 AM">
Я также удалил время из значения атрибута из инструментов разработчика браузера, чтобы посмотреть, работает ли оно, но оно тоже не сработало...
<input class="form-control" data-val="true" data-val-date="The field InitialDate must be a date." id="InitialDate" name="InitialDate" type="date" value="3/3/2015">
Как я могу отобразить дату из модели в окне выбора даты? Любая помощь будет оценена...
1 ответ
Если вы используете это для генерации реализации браузеров HTML5 datepicker, формат даты должен быть yyyy-MM-dd
(Формат ISO). С помощью TextBoxFor()
это должно быть
@Html.TextBoxFor(m => m.InitialDate, "{0:yyyy-MM-dd}", new { @class = "form-control", type = "date" })
Или добавьте следующие атрибуты к свойству
[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]
public Nullable<System.DateTime> InitialDate { get; set; }
и в представлении использовать
@Html.EditorFor(m => m.InitialDate)
Обратите внимание, что это добавляет type="date"
атрибут