2015-11-05 39 views
-1

我需要通過將自定義錯誤頁面拋出一​​些文本來覆蓋一些錯誤情況。如何在MVC中正確調用自定義錯誤頁面?

一般來說,我講的是一個情況當數據庫不可用時(無論是/因爲什麼原因)。在這種情況下,我的應用程序甚至沒有初始化,所以不能使用protected void Application_Error(object sender, EventArgs e)(響應爲空,所以我不能重定向到某些東西)。

我試圖用CustomError:

<system.web> 
    <customErrors mode="On" > 
     <error statusCode="500" redirect="/Error/DefaultError" /> 
    </customErrors> 
    ... 
</system.web> 

[AllowAnonymous] 
public ActionResult DefaultError() 
{ 
    return View(); 
} 

但由於自定義錯誤屏幕沒有出現了,我以爲我錯過了什麼。有人可以告訴我,我在做什麼錯在嘗試調用MVC中的CustomError或我錯過了什麼?

回答

0

我認爲你正在捕獲的唯一的錯誤代碼是500,這是處理請求時的內部服務器錯誤。可能有另一個錯誤代碼(例如400,403等),在這種情況下,響應不會重定向到「/ Error/DefaultError」。有與客戶端和服務器端錯誤相關的響應代碼。

你可以像這樣的customErrors標記添加的defaultRedirect:

<system.web> 
    <customErrors mode="On" defaultRedirect="~/Error"> 
     <error statusCode="500" redirect="/Error/DefaultError" /> 
    </customErrors> 
    ... 
</system.web> 

這會重定向到錯誤控制器指數方法,在其中您可以顯示默認的錯誤你的反應。

閱讀此鏈接Status Codes瞭解有關HTML狀態代碼的更多詳細信息。

相關問題