在与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。
答案 0 :(得分:5)
HandleErrorAttribute在满足以下条件时有效
如果遇到第二个条件,请确保您已启用自定义错误
<system.web>
<customErrors mode="On"></customErrors>
</system.web>
答案 1 :(得分:2)
您是否在web.config中打开了自定义错误? 如果不打开它,它应该工作。