2013-09-21 74 views
0

我有一个ASP.NET MVC 4应用程序。我想使用我的自定义句柄错误属性。为此我写了这个类: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 
    {....} 

当错误控制器occures,它不能被处理。如果在错误之后在调试器中按F5,则显示ErrorView。但是Debug.WriteLine("Error Occured");行从来没有工作。我究竟做错了什么?

回答

1

OnException methodvirtual但由于您没有override修饰符,因此您隐藏并且不覆盖此方法。所以你的自定义方法不会被MVC框架调用。

要纠正这一点,你只需要override方法:

public class MyHandleErrorAttribute : HandleErrorAttribute 
{ 
    public override void OnException(ExceptionContext filterContext) 
    { 
     base.OnException(filterContext); 
     Debug.WriteLine("Error Occured"); 
    } 
}