asp.net mvc 3 jquery добавление сообщения проверки вручную - PullRequest
9 голосов
/ 18 мая 2011

Я довольно долго искал и не смог найти ответ на этот вопрос.

Я использую asp.net MVC 3 с ненавязчивой проверкой. Моя модель связана с аннотациями данных для простой проверки (обязательные поля, регулярные выражения и т. Д.). Тем не менее, у меня есть более сложная проверка, которая происходит на сервере. Я делаю пост ajax, который возвращает мне сообщения проверки и добавления, которые приходят из моей доменной модели. Все, что я хочу сделать, это поместить эти проверочные сообщения в форму вместо существующих. Я не хочу использовать частичные представления, так как все, что я действительно получаю, это возвращающиеся сообщения, и нет необходимости обновлять весь вид. Кроме того, я не добавляю новые правила или новые входные данные в форму, чтобы $ .validator.unobtrusive.parse не работал. Это просто сообщения, которые я хочу поместить в форму. Вызов $ .post возвращает список сообщений, для которых это поле было затронуто, и сообщение проверки.

Вот что я хочу сделать

 $.post(url, { someData}, function (data) {
         for (message in data.Messages) {
             $("#form").validate().addMessage(message.Field, message.Text);
         }
    });

Спасибо за вашу помощь

Для запроса, вот пример возвращаемого JSON, это довольно просто.

{"id":0,"messages":["Level":0,"Message":"Style is required","Name":"Style"}],"operationResult":false}

messages - это список объектов, которые содержат уровень серьезности, свойство, к которому относится ошибка, и сообщение об ошибке. Я бы использовал имя в объекте сообщений, чтобы оно совпадало с тем, где оно требуется в форме.

1 Ответ

15 голосов
/ 15 июня 2011

У меня было точно такое же требование, я действительно нашел следующий метод.

var validator = $("form").validate();
validator.showErrors({field : "Error Message"})
...