ASP.NET MVC Controller.OnException未被调用

Ste*_*lin 9 c# asp.net-mvc controller onexception

我有一个基本控制器类,我将覆盖Controller.OnException处理程序方法,以便为将继承此类的某些类型的控制器提供一般错误处理(这些控制器将返回JSON结果).当控制器引发异常时,永远不会调用OnException方法.有谁看到我做错了什么,还是有更好的方法来处理这种情况?

使用MVC 1.0

基类:

public class APIController : Controller
    {

        protected override void OnException(ExceptionContext filterContext)
        {
           //This is never called
            filterContext.Result =
                new JsonResult(); 
            base.OnException(filterContext);
        }


    }
Run Code Online (Sandbox Code Playgroud)

继承类:

public class MyController : APIController
    {
public AjaxResult ForcedException()
        {
            throw new SystemException();
        }
}
Run Code Online (Sandbox Code Playgroud)

eu-*_*-ne 10

如果我正确理解您的问题 - 您的异常必须在OnException中标记为"已处理".试试这个:

filterContext.ExceptionHandled = true;
Run Code Online (Sandbox Code Playgroud)


Raz*_*scu -1

[HandleError]属性应用到类。