У меня есть вид редактирования. Заполняется ViewModel
, в котором пользователь может редактировать и отправлять.DataAnnotation, не отображающий данные, хранящиеся в ViewModel
<div class="form-group">
<strong>Date Effective:</strong>
<div class="col-md-10">
<p>
@Html.EditorFor(model => model.storeConfiguration.DateEffective)
@Html.ValidationMessageFor(model => model.storeConfiguration.DateEffective)
</div>
</div>
Модель вид содержит:
public DateTime DateEffective { get; set; }
Это показал дату в виде строки и позволила легко изменения. Однако я наткнулся на аннотации данных и обнаружил, что добавив [DataType(DataType.Date)]
, я смог получить полезный инструмент для выбора даты.
К сожалению, при использовании в моем представлении редактирования выше он показывает пустой выбор даты, а не показывает дату, которая находится в ViewModel
.
Возможно ли получить этот инструмент для выбора даты, не удаляя данные ViewModel
из моего редактирования?
EDIT:
При попытке отследить эту ошибку, я наткнулся на это время, глядя на «Проверить элемент»
<input class="text-box single-line" data-val="true" data-val-date="The field DateEffective must be a date." id="storeConfiguration_DateEffective" name="storeConfiguration.DateEffective" type="date" value="11/5/2014">
Это показывает правильное значение до сих пор хранится там, это просто не отображается пользователю.
EDIT 2:
Предварительное тестирование показало, что [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:yyyy-MM-dd}")]
работает. Я не совсем понимаю это, но кажется, что это формат, который должен иметь дата для доступа к нему. Оттуда EditorFor
может отображать его в инструменте выбора даты, который организован MM/dd/yyyy, который подходит для меня.
Если у кого-то есть твердый ответ о том, что это делает и почему, я буду принимать его в качестве выбранного ответа.
Это то, что сообщение об ошибке, которое я только что нашел, дает. Я думаю, вы можете быть на правильном пути. 'Указанное значение '11/05/2014 'не соответствует требуемому формату,' yyyy-MM-dd'.' – NerdyFool