我有一个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键,则会显示ErrorView。但是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");
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句