Дата не отображается из модели в формате ввода 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" атрибут

Другие вопросы по тегам