RegisterGlobalFilters和HandleErrorAttribute不起作用

时间:2012-01-19 15:02:15

标签: asp.net-mvc asp.net-mvc-3 handleerror

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

但我做到了。

为什么这对我不起作用?

更新

archil和Adam Tuliper的建议有点奏效。调用了错误视图。

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

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

调用了AllOtherExceptions视图。为什么不使用DivideByZeroException视图?

后续问题已发布here

2 个答案:

答案 0 :(得分:5)

HandleErrorAttribute在满足以下条件时有效

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

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

<system.web>
     <customErrors mode="On"></customErrors>
</system.web>

答案 1 :(得分:2)

您是否在web.config中打开了自定义错误? 如果不打开它,它应该工作。