Когда возникает исключение в действии, вызванном из Ajax-запроса, фильтр HandleError по умолчанию может работать неправильно. Может ли кто-нибудь помочь мне решить эту проблему?
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
Я иду таким образом: в действии, которое обслуживает ajax-запрос, я отлавливаю все возможные ошибки и возвращаю JSon-объект с появившимися ошибками. Таким образом, идея очень проста — написать блоки try..catch в этом коде действия, чтобы получить все возможные ошибки и при необходимости зарегистрировать их.
Похожие вопросы
Новые вопросы
asp.net-mvc
ASP.NET MVC Framework - это платформа и инструмент веб-приложений с открытым исходным кодом, которые реализуют версию шаблона модель-представление-контроллер (MVC), адаптированную к веб-приложениям и построенную на основе технологии ASP.NET.