{01/01/0001 00:00:00} передается как дата и время по умолчанию, MVC 2

#asp.net-mvc #datetime

#asp.net-mvc #дата и время

Вопрос:

Всякий раз, когда я пытаюсь обновить объект, у которого есть зарегистрированное поле даты, это значение передается в модели

   {01/01/0001 00:00:00}
  

Это происходит даже тогда, когда я добавляю

   <%: Html.EditorFor(model => model.RegisteredDate) %>
  

в представлении, даже если зарегистрированная дата отображается в редакторе как

  18/03/2011 00:00:00
  

Передается другое значение и выдает следующую ошибку

  SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM.
  

Кто-нибудь еще испытывал что-нибудь подобное?

Комментарии:

1. Я не знаю, что не так, но это значение datetime по умолчанию. Возможно, вы неправильно его привязываете.

2. можете ли вы также показать метод действия, написанный в контроллере?

Ответ №1:

Указанная вами дата — 18/03/2011 — выглядит в формате день / месяц / год, что недопустимо. Формат DateTime по умолчанию равен месяцу / дню / году (ММ / дд / гггг). .Net пытается проанализировать 18 как месяц, что, очевидно, неверно, отсюда ошибка и используется значение datetime по умолчанию 01/01/0001 00:00:00.

Комментарии:

1. Воин, спасибо, проблема заключалась в том, что я использовал неправильное свойство даты и времени по умолчанию.