有人可以解释一下如何在我的项目中添加自定义404和500错误吗?我尝试将其添加到Web.config:
<customErrors mode="On">
<error code="404" path="404.html" />
<error code="500" path="500.html" />
</customErrors>
答案 0 :(得分:0)
如果来自控制器的操作方法抛出异常,则会调用OnException方法。与HandleErrorAttribute不同,它还会捕获404和其他HTTP错误代码,并且它不需要打开customErrors。
它是通过覆盖控制器中的OnException方法实现的:
{{1}}
使用filterContext.ExceptionHandled属性,您可以检查是否在较早阶段处理了异常(例如HandleErrorAttribute):
if(filterContext.ExceptionHandled) 返回; 互联网上的许多解决方案都建议创建一个基本控制器类,并在一个地方实现OnException方法以获得全局错误处理程序。
但是,这并不理想,因为OnException方法几乎与其范围内的HandleErrorAttribute一样受限。你最终会在至少另一个地方重复你的工作。
答案 1 :(得分:0)
这是我最近阅读的最好的文章,让您知道您即将进入的快乐http://benfoster.io/blog/aspnet-mvc-custom-error-pages 我的customErrors元素看起来像这样。
struct Dog { int count[2]; };
Dog dogs[N];