Подтвердить что ты не робот

Отображение ошибок состояния модели после вызова ajax в представлении Razor

У меня есть вид бритвы с @Html.ValidationMessageДля помощников и jQuery ненавязчивая настройка проверки.

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

Я сделал какой-то код, который делает это, но мне было интересно, есть ли способ сделать это автоматически, т.е. если я захвачу неверный запрос HTTP как ответ AJAX, я хочу извлечь ошибки состояния модели из тела ответа и подключиться их к ненавязчивой проверке.

Я ищу полное рекомендованное решение, а не обходные пути:)

Спасибо!

4b9b3361

Ответ 1

Вы можете возвращать ошибки с результатом Json (Как получить все ошибки из asp.net mvc modelState?):

var allErrors = ModelState.Values.SelectMany(v => v.Errors);

Затем вручную отображаются ошибки. Получить валидатор формы:

var validator = $("form").validate();

Затем проверьте правильность инициализации полей, например, вы можете посмотреть здесь (необязательный шаг):

validator.settings.rules

ИЛИ

validator.settings.messages

Если все в порядке, вы можете показать ошибку:

validator.showErrors({"Password": "Too simple!"});

Где Password - имя поля, а Too simple! - сообщение об ошибке.