我在我的應用程序中啓用了自定義錯誤。 web配置有一個條目,如下所示:自定義錯誤在我的MVC 4應用程序中不起作用
<customErrors mode="On" defaultRedirect="~/Views/Shared/Error.cshtml">
<error statusCode="403" redirect="~/Views/Shared/UnauthorizedAccess.cshtml"/>
<error statusCode="404" redirect="~/Views/Shared/FileNotFound.cshtml"/>
</customErrors>
我也有應用作爲一個全球性的行動濾波器HandleError
屬性。我FilterConfig
內容如下:
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new HandleErrorAttribute());
}
另外,還有在~/Views/Shared
文件夾中定義的默認Error.cshtml
。
但是,我的應用程序顯示IE的醜陋默認錯誤頁面。
更新
我檢查了自定義錯誤頁都出現了罰款,除了IE以外的其他瀏覽器。這裏的交易是什麼?
進一步更新
剛剛找到這篇文章。 http://perishablepress.com/important-note-for-your-custom-error-pages/
它說,IE希望自定義錯誤頁面的大小至少爲512字節。如果你的自定義錯誤頁面小於這個尺寸,它會拋出自己的醜陋錯誤頁面。
最新更新 現在一切正常,我增加了我的錯誤頁面的有效載荷。但是,只有默認的Error.cshtml頁面顯示未處理的異常。對於其他狀態代碼,我得到一個ASP.NET 404,說它無法在web.config文件中指定的位置找到我的自定義錯誤頁面。我確實有自定義錯誤頁面,並且它們具有我在web.config中指定的確切名稱。
你在做的錯誤東西。 cshtml可能會導致錯誤? – ChrisBint
確保在錯誤視圖中有'@model System.Web.Mvc.HandleErrorInfo '模型。 –
@ChrisBint:沒什麼。這是盒子裏出來的那個。根據Nate的建議,除了剛剛添加模型之外,我還沒有觸及它。沒有效果。 –