Как я могу вернуть ошибки из моего контроллера asp.net mvc при выполнении сообщения jquery ajax? - PullRequest
1 голос
/ 28 марта 2009

Я создаю веб-сайт в ASP.NET MVC и наткнулся на то, чего я действительно не могу понять.

У меня есть страница профиля пользователя, которая позволяет пользователю изменить свой пароль. На сервере я хочу подтвердить, что пользователь ввел правильный «текущий» пароль, прежде чем разрешить изменение.

Каков наилучший способ вернуться в мой просмотр, если пароль неверный? Я попытался использовать ModelState.AddModelError, а затем вернуть Json (View ()), но нигде не вижу сообщения об ошибке в объекте JSON, возвращенном браузеру.

Какой лучший способ сделать это, используя jquery на клиенте?

/ Jesper

Ответы [ 2 ]

2 голосов
/ 28 марта 2009

Я бы создал для классов

JsonOK : JsonResult { ... }
JsonError : JsonResult { ... }

И используйте эти 2 для ОК и ответов об ошибках.

try
{
    ...
}
catch (Exception ex)
{
    return JsonError(ex.Message);
    // or output your own message
    // or pass into it ModelState with your errors
}
1 голос
/ 28 марта 2009

ModelState автоматически ничего не делает с возвращенным Json. Вам следует вручную заполнить объект модели данными, которые вы хотите вернуть клиенту.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...