ASP.NET MVC 4 自定义句柄错误
本文关键字:句柄 错误 自定义 NET MVC ASP | 更新日期: 2023-09-27 18:32:25
我有一个 ASP.NET 的MVC 4应用程序。我想使用我的自定义句柄错误属性。因此,我写了这门课:
public class MyHandleErrorAttribute : HandleErrorAttribute
{
public void OnException(ExceptionContext filterContext)
{
Debug.WriteLine("Error Occured");
}
}
我在控制器级别添加了属性:
[MyHandleError(ExceptionType = typeof(Exception),View="ErroView")]
public class MeetingController : Controller
{....}
当控制器中发生错误时,无法处理。如果我在错误后在调试器中按 F5,则会显示错误视图。但Debug.WriteLine("Error Occured");
这条线永远行不通。我做错了什么?
OnException
方法是virtual
,但由于您没有 override
修饰符,因此您隐藏并且不会覆盖此方法。因此,MVC 框架不会调用您的自定义方法。
要更正此问题,您只需override
该方法:
public class MyHandleErrorAttribute : HandleErrorAttribute
{
public override void OnException(ExceptionContext filterContext)
{
base.OnException(filterContext);
Debug.WriteLine("Error Occured");
}
}