RegisterGlobalFilters和HandleErrorAttribute不工作



在与RegisterGlobalFilters和HandleErrorAttribute长期斗争之后,我决定回到最基本的部分。我使用该模板在VS10中创建了一个新的MVC 3项目。在About操作中添加throw DivideByZeroException并启动开发服务器。预计不会看到黄色屏幕。

但我做到了。

为什么这对我不起作用?

更新

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

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

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

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

后续问题已发布在此处

HandleErrorAttribute在满足以下条件时工作

  • 在web配置中启用了CustomErrors
  • 若异常为HttpException,则其错误代码为500

在您的情况下,满足第二个条件,确保您在上打开了自定义错误

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

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

最新更新