一、概述
MVC4架構自帶了定義錯誤頁,該頁面位于Shared/Error,該頁面能夠顯示系統未能捕獲的異常,如何才能使用該頁面;
二、使用步驟:
1、配置WebConfig檔案,在System.Web節點下加上
翻閱一些大神寫的部落格,在他們的部落格中指出defaultRedirect是指向錯誤頁面的URL,可是經過本人測試的時候,發現在MVC4中這種說法并不準,在MVC中,有一套預設的機制(這部分代碼被微軟封裝,無法閱讀),該機制能夠把錯誤資訊通過HandleError屬性指向Shared/Error頁面,也就是說配置System.Web節點,可以省略defaultRedirect
2、Global檔案,添加HandleEffor屬性
在Global定義之後,也就是全局定義,其他Action和Control都不需要定義,預設使用HandleError控制屬性;
這樣就可以使用MVC4中系統預設的Error頁面;
三、自定義錯誤頁面
有些時候,我們想使用自定義的錯誤頁面,該怎麼處理那,翻頁其他大牛寫的部落格,看到有這種方式,自定義屬性Class繼承FileterAttribute,重寫OnException方法,代碼如下


将該屬性注冊到全局Global中,定義鋪貨異常等級


當然我們也可以不使用MVC架構自帶的Error頁面,定義一個Error404,如何使用這個頁面那 ,起始也挺簡單的,代碼如下


四、遇到問題總結
1、遇到重定向,URL指向aspxerrorpath,如:
http://local:8090/error/error.htm?aspxerrorpath=/cmt/p/3789549.html
出現這個問題的主要原因:
1>、Global沒有添加
filters.Add(new HandleErrorAttribute(View="Error404"))
2>、Shared目錄沒有Error頁面;
3>、如果存在Error頁面,但是頁面是用了布局Layout,組成的Error頁面存在錯誤,比如ModeView資料不對等,需要詳查;
2、自定義Error的其他方式
代碼粘貼如下:


實作樣式多樣,隻要實作功能就是最好;
原文:http://www.cnblogs.com/xibei666/p/5153807.html