ASP.Net MVC 5 Ненавязчивая проверка на стороне клиента Непоследовательное поведение

#c# #asp.net-mvc #asp.net-mvc-4 #asp.net-mvc-5 #unobtrusive-validation

#c# #asp.net-mvc #asp.net-mvc-4 #asp.net-mvc-5 #Ненавязчивая проверка

Вопрос:

У меня странное поведение в отношении моего ASP.Net Приложения MVC 5, которые я создаю в отношении ненавязчивой проверки на стороне клиента.

Я создал совершенно новый проект, обновил все пакеты Nuget и создал очень простую модель с 3 полями, которая использует entity Framework для подключения к базе данных sql. Представление было создано автоматически с использованием опции crud при создании представления из контроллера.

По сути, происходит то, что проверка на стороне клиента изначально не работает. Все поля в модели были помечены [Обязательно], но когда я удаляю значение, я не получаю сообщения об ошибке. Единственное сообщение об ошибке, которое я могу вызвать на стороне клиента, — это дата, если я ввожу букву. С целым числом, если я ввожу букву, я не получаю проверки на стороне клиента.

Однако, как только я нажимаю кнопку отправки, я получаю сообщения об ошибках. Кнопка отправки не отправляет весь путь обратно на сервер. Я поставил точки останова в приложении на HttpPost, и он не достигает этого, что говорит мне о том, что проверка на стороне клиента работает.

Теперь, когда это становится странным, после того, как я нажал кнопку отправки, ненавязчивая проверка на стороне клиента начинает работать для каждого элемента. Теперь все поля становятся обязательными, а сообщения об ошибках обновляются по назначению. Что может быть причиной того, что при первоначальной загрузке приложения оно не работает?

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

1. похоже, вы вообще не используете проверку на стороне клиента. установлено ClientValidationEnabled значение true в ваших настройках приложений?

2. да, и для этого, и для unobtrusivejavascriptenabled установлено значение true!

3. Это нормальное поведение плагина проверки jQuery… jqueryvalidation.org/documentation/… (контрольная точка 2)

4. Наверное, я думал, что он всегда будет проверять … но теперь, прочитав, кажется, что он работает так, как задумано. Спасибо!