Отображение ошибок состояния модели после вызова ajax в представлении Razor
У меня есть вид бритвы с @Html.ValidationMessageДля помощников и jQuery ненавязчивая настройка проверки.
Я хочу вызвать контроллер/действие и показать возможные ошибки состояния модели, возвращенные действием, используя ту же самую логику проверки, которая уже установлена на месте.
Я сделал какой-то код, который делает это, но мне было интересно, есть ли способ сделать это автоматически, т.е. если я захвачу неверный запрос HTTP как ответ AJAX, я хочу извлечь ошибки состояния модели из тела ответа и подключиться их к ненавязчивой проверке.
Я ищу полное рекомендованное решение, а не обходные пути:)
Спасибо!
Ответы
Ответ 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!
- сообщение об ошибке.