我一直在本指南中的HandleError屬性如下: blogs.msdn.com 我用像這樣(的AccountController):MVC3的HandleError不顯示錯誤頁面
[HandleError(View="ErasErrorPage")]
public ActionResult Index()
{
ViewBag.admins = _accountMapper.GetAdmins(false);
ViewBag.members = _accountMapper.GetMembers(false);
ViewBag.Countries = _countryMapper.GetCountries();
return View();
}
此代碼拋出一個異常,因爲_accountMapper.GetAdmins(false)
失敗因爲System.Data.EntityException的。
我已將ErasErrorPage視圖放入我的共享文件夾中,並添加了<customErrors mode="On"/>
,但ErasErrorPage不顯示。當發生錯誤時我得到的所有信息都是一個黃色的死亡屏幕:
顯然,將模式設置爲「Off」或「RemoteOnly」並不能解決問題。
任何人有一個想法,爲什麼這不起作用?
編輯
如果我直接衝浪http://localhost:3527/Account/Index,我得到了正確的ErasErrorPage,但我不希望出現這種情況。我想,當一個異常被拋出某處的網站重定向全自動到該頁面。這可能嗎?
EDIT2
我已經把[HandleError(View="ErasErrorPage")]
屬性每一個Public ActionResult methodName() { ... }
方法之前正確的,我仍然得到死亡的黃屏說我需要改變模式「關閉」或‘僅限遠程’......
這是一個非常古老的問題,但人們通過它絆腳石。你必須有customErrors =「On」,並且異常必須產生一個500類錯誤,拋出一個403並且它不會被觸發,它不會處理已經被處理的子動作或異常,並且異常必須從System派生。例外,沒有土着。一個簡單的測試方法就是簡單地移除View屬性,檢查它是否至少觸發到默認的Error頁面。如果是這樣,你知道它的路徑錯誤等自定義視圖。 – rism 2015-05-23 12:43:27