【发布时间】:2011-07-05 11:45:06
【问题描述】:
我正在使用带有 VS2010 的 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 视图,它也会为 Result 返回 500。这会导致 IE 认为它有错误并使用其友好页面覆盖我的页面。
我认为 MVC 应该返回 Result 200 和我的 Error.aspx 页面,而不是 500。谁能给我一些关于尝试什么的想法?
【问题讨论】: