2011-02-28 88 views
3

我在VS2010中使用MVC 3並試圖使[HandleError]正常工作。我在控制器中創建一個測試,以模擬碰撞如下:MVC HandleError返回錯誤500並查看錯誤頁面

[HandleError] 
public ActionResult Crash() 
{ 
    throw new ApplicationException(); 
} 

也進入的web.config和添加:

<customErrors mode="on" /> 

如果我從鉻運行,MVC返回視圖中共享/ Error.aspx,所以這工作正常。

如果我從IE 8運行,我得到它的友好錯誤頁面(「網站無法顯示頁面,最有可能的原因:......你可以嘗試......」)。我進入IE工具並關閉「顯示友好的HTTP錯誤信息」並再次運行,IE顯示我的Error.aspx視圖。顯然,我無法讓用戶更改此設置,但至少我知道我的Error.aspx正在返回。

所以我運行Fiddler,當我讓瀏覽器轉到我的Crash方法時,它表明即使MVC返回Error.aspx視圖,它也會返回500作爲結果。這導致IE認爲它有一個錯誤,並用友好的頁面覆蓋我的頁面。

我認爲MVC應該返回Result 200與我的Error.aspx頁面,而不是500.任何人都可以給我一些想法什麼嘗試?

回答