В моем приложении (MVC 5, начальная загрузка) у меня есть настройки по умолчанию из леса MVC.
Я хочу, чтобы даты отображались в формате дд / мм / гггг для пользователей из Великобритании. Это объявление модели данных / класса для даты и аннотаций:
[Required, DatabaseGenerated(DatabaseGeneratedOption.Computed)]
[DataType(DataType.Date)]
[Column(TypeName = "Date")]
[DisplayName("Invoice Date")]
public DateTime InvoiceDate { get; set; }
Это нормально работает в Internet Explorer, но не в Firefox, Opera или Edge.
При редактировании этого параметра в последних трех датах просто отображается дд / мм / гггг в поле редактирования, предположительно, поскольку браузеры предоставляют свои собственные элементы управления редактированием и каким-то образом полагаются на конкретную форму. Я не уверен в этом ???
Я кое-что прочитал и добавил эту аннотацию к дате, которая, как говорили, решает эту проблему:
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:yyyy-MM-dd}")]
Я попробовал это, и, похоже, это сработало, но при более внимательном рассмотрении показывается, что дата отображается в неправильном формате, когда отображается не для редактирования. И там была некоторая неуверенность там через браузеры.
Затем, когда я вернулся к тестированию на IE, форматы даты теперь были неправильными.
Итак, мой вопрос: как вы правильно решаете эту проблему в MVC / razor в разных браузерах? Какой правильный или лучший метод практики?
И, конечно, каков наилучший метод борьбы с этим и обеспечения правильных форматов даты для культуры / страны пользователя и т. Д.?
Заранее спасибо.
Использование Bootstrap с привязкой в mvc, EditorFor и т. Д., Например:
<div class="form-group">
@Html.LabelFor(model => model.PaymentDate, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.PaymentDate, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.PaymentDate, "", new { @class = "text-danger" })
</div>
</div>
Я попробовал Bootstrap.v3.datetimepicker, но это не сработало в Firefox или Opera. Я, очевидно, хочу, чтобы средство выбора даты имело тот же внешний вид, что и другие компоненты начальной загрузки.
Любая помощь приветствуется.