Допустим, в моей модели у меня есть public DateTime Date {get;set;}
свойство.В представлении это должно быть представлено в нескольких текстовых полях - одно для даты и другое для времени.
Я создал два разных шаблона редактора
DateTime.cshtml:
@model DateTime?
@Html.TextBox("", (Model.HasValue ? Model.Value.ToShortDateString() : string.Empty), new { @class = "datePicker", style = "width:90px" })
и TimeOnly.cshtml
@model DateTime?
@Html.TextBox("", (Model.HasValue ? Model.Value.ToShortTimeString() : string.Empty), new { @class = "timePicker", style = "width:90px" })
И поля EditorFor в представлении
@Html.EditorFor(x => x.Date)
@Html.EditorFor(x => x.Date,"TimeOnly")
Теперь проблема заключается в том, что фактическое значение свойства Date передается вКонтроллер поставляется со временем по умолчанию 12:00.То же самое происходит с датой, если мы меняем порядок полей EditorFor - дата возвращается к значению даты по умолчанию сразу после применения шаблона TimeOnly, хотя часть времени остается правильной.
Снова наСамо по себе значения в порядке, но при отправке он передает значение по умолчанию в контроллер, либо с правильной датой и временем по умолчанию, и наоборот (зависит от того, какой шаблон использовался первым)
Конечно, я всегда могу отделить дату иВремя, просто добавив другое свойство в модель, но есть ли лучшее решение?