У меня проблемы с получением объекта DateTime из моей модели для отображения в средстве выбора даты. Первоначально я обрабатывал его как текст с определенным форматом, используя DataFormat DataAnnotation.
Я попытался добавить DataType DataAnnotation. Я попытался добавить Обязательную аннотацию данных. Я попытался изменить DisplayFormat на dd / MM / yyyy.
Я видел аннотацию datatype.date, не отображающую календарь в Firefox , и протестировал последнюю версию. версия Chrome и Firefox.
Оригинал Billing.cs
[DataMember]
[Display(Name = "Start Date")]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:yyyy MMM dd}")]
public System.DateTime StartDate { get; set; }
Протестировано с Billing.cs
[DataMember]
[Display(Name = "Start Date")]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy}")]
[DataType(DataType.Date), Required]
public System.DateTime StartDate { get; set; }
Edit.cshtml
<div class="form-group row">
@Html.LabelFor(model => model.StartDate, htmlAttributes: new { @class = "col-form-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.StartDate, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.StartDate, "", new { @class = "text-danger" })
</div>
</div>
Я ожидал увидеть дату в окне выбора даты. Но вместо этого я вижу местозаполнитель "dd / mm / yyyy".
Если я просматриваю источник страницы, я вижу, что страница действительно получает ожидаемую дату из нашей базы данных.
<input class="form-control text-box single-line" data-val="true" data-val-date="The field Start Date must be a date." data-val-required="The Start Date field is required." id="StartDate" name="StartDate" type="date" value="01/01/2018">
Я не уверен, что я что-то упустил или нет.