Как реализовать фильтр HandleError по запросу Ajax? - PullRequest
0 голосов
/ 16 июня 2009

Когда возникает исключение в действии, вызванном из Ajax-запроса, фильтр HandleError по умолчанию может работать некорректно. Может кто-нибудь помочь мне решить это?

Ответы [ 2 ]

1 голос
/ 17 февраля 2010

Вы также можете переопределить метод OnException в вашем контроллере, чтобы перехватывать все необработанные исключения и возвращать пользовательское представление или JSON / XML в случае ошибки.

    protected override void OnException(ExceptionContext filterContext) {
        filterContext.ExceptionHandled = true;
        filterContext.Result = this.Json(new {
            result = "error",
            details = filterContext.Exception.GetType().Name + ": " + filterContext.Exception.Message
        });
    }

См. Этот пост для получения дополнительной информации о возврате пользовательского представления: http://geekswithblogs.net/SanjayU/archive/2009/11/09/error-handling-in-asp.net-mvc-1-part-2-of-2.aspx

0 голосов
/ 16 июня 2009

Я иду таким образом: в действии, которое обслуживает запрос ajax, я улавливаю все возможные ошибки и возвращаю объект JSon с ошибками, которые появились. Так что идея очень проста - написать блоки try..catch в этом коде действия, чтобы получить все возможные ошибки и записать их в случае необходимости.

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