RegisterGlobalFilters和HandleErrorAttribute不起作用

Mar*_*tin 1 asp.net-mvc handleerror asp.net-mvc-3

在与RegisterGlobalFilters和HandleErrorAttribute永远斗争之后,我决定回到原点.我使用模板在VS10中创建了一个新的MVC 3项目.在About-action中添加一个抛出DivideByZeroException并启动dev服务器.预计不会看到黄色的屏幕.

但我做到了.

为什么这对我不起作用?

更新

archil和Adam Tuliper的建议有点奏效.调用了Error视图.

然后我继续在RegisterGlobalFilters中添加它.

filters.Add(new HandleErrorAttribute { ExceptionType = typeof(DivideByZeroException), View = "DivideByZeroException", Order = 1 });
filters.Add(new HandleErrorAttribute { View = "AllOtherExceptions", Order = 2 });
Run Code Online (Sandbox Code Playgroud)

调用了AllOtherExceptions视图.为什么不是DivideByZeroException视图?

后续问题已在此处发布.

arc*_*hil 6

HandleErrorAttribute在满足以下条件时有效

  • Web配置中启用了CustomErrors
  • 如果异常是HttpException,则其错误代码为500.

在您遇到第二个条件时,请确保已启用自定义错误

<system.web>
     <customErrors mode="On"></customErrors>
</system.web>
Run Code Online (Sandbox Code Playgroud)