MVC4 自定義錯誤頁面(三)

2021-09-25 23:42:11 字數 2100 閱讀 9227

一、概述

mvc4框架自帶了定義錯誤頁,該頁面位於shared/error,該頁面能夠顯示系統未能捕獲的異常,如何才能使用該頁面;

二、使用步驟:

1、配置webconfig檔案,在system.web節點下加上

翻閱一些大神寫的部落格,在他們的部落格中指出defaultredirect是指向錯誤頁面的url,可是經過本人測試的時候,發現在mvc4中這種說法並不准,在mvc中,有一套預設的機制(這部分**被微軟封裝,無法閱讀),該機制能夠把錯誤資訊通過handleerror屬性指向shared/error頁面,也就是說配置system.web節點,可以省略defaultredirect

customerrors mode="on"/>
2、global檔案,新增handleeffor屬性

public static void registerglobalfilters(globalfiltercollection filters)

在global定義之後,也就是全域性定義,其他action和control都不需要定義,預設使用handleerror控制屬性;

這樣就可以使用mvc4中系統預設的error頁面;

三、自定義錯誤頁面

有些時候,我們想使用自定義的錯誤頁面,該怎麼處理那,翻頁其他大牛寫的部落格,看到有這種方式,自定義屬性class繼承fileterattribute,重寫onexception方法,**如下

//寫入日誌 記錄

filtercontext.exceptionhandled = true;//設定異常已經處理

}else

} }}

將該屬性註冊到全域性global中,定義鋪貨異常等級

public static void registerglobalfilters(globalfiltercollection filters)

當然我們也可以不使用mvc框架自帶的error頁面,定義乙個error404,如何使用這個頁面那 ,起始也挺簡單的,**如下

public static void registerglobalfilters(globalfiltercollection filters)

四、遇到問題總結

1、遇到重定向,url指向aspxerrorpath,如:

出現這個問題的主要原因:

1>、global沒有新增 

filters.add(new handleerrorattribute(view="error404"))

2>、shared目錄沒有error頁面;

3>、如果存在error頁面,但是頁面是用了布局layout,組成的error頁面存在錯誤,比如modeview資料不對等,需要詳查;

2、自定義error的其他方式

**貼上如下:

}//對於路徑錯誤不記錄日誌,並都以自定義404頁面響應

if (lasterror.targetsite.reflectedtype == typeof(system.io.path))

response.statuscode = 500;

server.clearerror();

}}

實現樣式多樣,只要實現功能就是最好;

在MVC 4 中使用自定義Membership

在web.config中配置了memshipprovider後,執行始終報個錯 說明 在處理向該請求提供服務所需的配置檔案時出錯。請檢查下面的特定錯誤詳細資訊並適當地修改配置檔案。分析器錯誤訊息 無法在應用程式的預啟動初始化階段呼叫此方法。源錯誤 行 42 行 43 折騰了很久,終於找到了答案 ad...

自定義404錯誤頁面

自定義404頁面返回不當狀態碼如 200 等給 最終seo效果帶來的不利影響,因此,確保自定義的404錯誤頁面能夠返回 404 狀態碼是極為重要的,也是 優化與seo的基本要求。這一點如何保證呢?如何才能為 設定能夠正常工作的404錯誤頁面?定製404錯誤頁面的基本原則 首先應明確的是404錯誤應工...

springboot自定義錯誤頁面

controller public class baseerrorcontroller implements errorcontroller public string error 方法二 新增自定義的錯誤頁面2.1 html靜態頁面 在resources public error 下定義 如新增4...