Вопрос

У меня есть поле DateTime в моей модели, которое, на мой взгляд, отображается в форме, подобной этой:

<div class="editor-field">
    @Html.EditorFor(model => model.Age)
    @Html.ValidationMessageFor(model => model.Age)
</div>

Когда новая модель создается и вставляется в мою базу данных, я присваиваю ей значение 09/11/1990 15:36:22.Если я попытаюсь отредактировать эту модель, используя свой вид, и не изменю значение Age для моей модели модель проверена, и любые изменения в других полях принимаются и сохраняются.Однако, если я изменю Age поле для 07/27/2010 15:36:22 Я получаю сообщение об ошибке проверки" The value '07/27/2010 15:36:22' is not valid for Age. Но, дата 09/12/2010 15:36:22 успешно проверен.Есть какая-нибудь причина, почему это происходит?В отладчике значение, возвращаемое для недопустимых дат, равно 01/01/0001.

Редактировать:Я думаю, что это связано с культурой jquery-validate и моей системой, поскольку проверка на стороне клиента завершается с ошибкой при любой дате в формате DD / MM / ГГГГ, в то время как проверка на стороне сервера завершается с ошибкой при любой дате в формате MM / DD / YYYY.

Это было полезно?

Решение

Предполагая, что вы хотите заставить модель работать на стороне клиента, я бы изменил ваши настройки ASP .NET Globalization, чтобы заставить систему использовать глобализацию, которую вы хотите.Это действительно правильное решение, только если вы ожидаете, что клиенты будут использовать вашу систему, использующую один согласованный формат даты и времени.

Проблема, с которой вы столкнулись (я думаю), заключается в том, что некоторые браузеры не согласуются в отношении глобализации, которую они используют на стороне клиента, и глобализации, которую они представляют всему миру.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top