2016-08-26 2 views
0

Я хочу реализовать обработку исключений в моем проекте MVC с использованием настраиваемого атрибута ошибки.Обработка исключений в MVC с использованием HandleErrorAttribute

Представленный 4-й пример here является неполным с точки зрения того, где мы должны вводить имя вида, имя контроллера и т. Д. И как декорировать контроллеры и действие новым атрибутом.

Любая помощь будет оценена по достоинству.

ответ

0

Создать атрибут пользовательские ошибки как таковой

public class MyCustomErrorAttribute : HandleErrorAttribute 
{ 
     public override void OnException(ExceptionContext filterContext) 
     { 
      var controllerName = filterContext.RouteData.Values["controller"]; 
      var actionName = filterContext.RouteData.Values["action"]; 
      //Do something with the Controller or Action, e.g. Logging the exception 
      base.OnException(filterContext); 
     } 
    } 

Затем добавьте следующий код в Global.asax.cs

public static void RegisterGlobalFilters(GlobalFilterCollection filters) 
{ 
    filters.Add(MyCustomErrorAttribute); 
} 

Тогда просто используйте атрибут на уровне контроллера в качестве такого

[MyCustomErrorAttribute] 
public class HomeController: Controller 
{ 

} 

или на уровне действия как таковой

public class HomeController: Controller 
{ 
    [MyCustomErrorAttribute] 
    public ActionResult Index(){ 

    } 
} 
Смежные вопросы