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

0
rivendare 16 Июн 2009 в 09:39

2 ответа

Вы также можете переопределить метод 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-из-2.aspx

1
rusvdw 17 Фев 2010 в 12:00

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

0
diadiora 16 Июн 2009 в 10:14