我正在使用VSC10的MVC 3并尝试让[HandleError]正常工作。我在控制器中创建了一个测试来模拟崩溃,如下所示:
[HandleError]
public ActionResult Crash()
{
throw new ApplicationException();
}
还进入了web.config并添加了:
<customErrors mode="on" />
如果我从Chrome运行,MVC会返回Shared / Error.aspx中的视图,所以这项工作正常。
如果我从IE 8运行,我会得到友好的错误页面(“网站无法显示页面,最有可能的原因:......你可以试试......”)。我进入IE工具并关闭“显示友好的HTTP错误消息”并再次运行,IE显示我的Error.aspx视图。显然我无法让用户更改此设置,但至少我知道我的Error.aspx正在返回。
所以我运行Fiddler,当我让浏览器转到我的Crash方法时,它显示即使MVC返回我的Error.aspx视图,它也会返回结果500。这会导致IE认为它有错误,并使用友好页面覆盖我的页面。
我认为MVC应该使用我的Error.aspx页面而不是500返回结果200.任何人都可以给我一些关于尝试什么的想法吗?