使用HandleErrorAttribute在MVC中处理异常

本文关键字:处理 异常 MVC HandleErrorAttribute 使用 | 更新日期: 2023-09-27 18:04:01

我想在我的MVC项目中使用自定义错误属性实现异常处理。

这里提供的第四个例子是不完整的,因为我们应该在哪里输入视图名,控制器名等,以及如何用新属性装饰控制器和动作。

使用HandleErrorAttribute在MVC中处理异常

创建自定义错误属性

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(){
    }
}