Причина ошибки проверки на стороне клиента, что вы сгенерировали текстовое поле для свойства и по умолчанию, jquery.validate.js
проверяет даты на основе формата MM/dd/yyyy
, в то время как ваш формат dd/MM/yyyy
. Вы можете переопределить $.validator
, как описано в ответе на ваш subsequent question.
Однако реальная проблема заключается в том, что вы не должны создавать элемент управления формы для свойства «Создать дату» (или «Измененная дата»). Эти значения должны устанавливаться только в методе POST контроллеров непосредственно перед сохранением объекта.
В представлении, если редактирование существующего объекта, используйте
<div>@Html.DisplayFor(m => m.CREATED)</div>
для отображения даты, и вы можете форматировать DIV, чтобы посмотреть, как ваши другие текстовые поля, если это необходимо. Вы должны также удалить связанный ValidationMessageFor()
и LabelFor()
(вы больше не имеет соответствующего контроля формы так <label>
элемент не подходит - вы можете просто использовать (скажем) <span>@Html.DisplayNameFor(m => m.CREATED)</span>
)
Если вы хотите, чтобы представить значение из CREATED
, то вы можете также включить скрытый вход для значения (по умолчанию, скрытые входы не подтверждены)
@Html.HiddenFor(m => m.CREATED) // you can use a [DisplayAttribute] for formatting the value
Однако, поскольку вы редактируете данные, вы должны использовать view model, не ваша модель данных. В методе POST вы получаете исходную модель данных из репозитория на основе своего идентификатора и обновляете свои свойства на основе значений из модели представления (что делает необходимость скрытого ввода избыточным, поскольку вам не нужно обновлять это значение) , Этот шаблон также защищает вас от злонамеренных пользователей, которые могут изменить запрос и отправить обратно измененные значения для дат.
Если он не может быть отредактирован, то почему вы создаете для него элемент управления формой? И ошибка возникает из-за того, что 'jquery.validate.js' проверяет даты на основе формата' MM/dd/yyyy', и ваша культура выглядит 'dd/MM/yyyy' –
Так как имя свойства указывает его дату, запись была создана, она не должна быть в представлении в любом случае - она должна быть установлена только в контроллере непосредственно перед сохранением модели данных (и в вашем представлении должна использоваться [модель просмотра] (http://stackoverflow.com/questions/ 11064316/what-is-viewmodel-in-mvc) без свойства 'CREATED'. –
Я хочу показать, когда он был создан. Я столкнулся бы с этой проблемой, если бы создал это значение в' div'? – PriceCheaperton