MVC3 自定義的錯誤頁

2022-05-04 01:30:10 字數 2072 閱讀 5555

asp.net mvc3中如果配置檔案出錯了,怎麼跳轉到自定義的錯誤頁,現在參考網上的檔案是說

新增 如下配置檔案,並且在路徑views/shared/下新增error頁面,測試下沒有用的,請大家看看有什麼好的建議啊,謝謝了啊!

mvc根本不會理睬web.config中的customerrors,預設是由handleerrorattribute處理的,顯示的是/views/shared/error.cshtml中內容。

mvc中,可以用過濾器來實現異常處理

1.在global.asax檔案,

//1.在global.asax檔案中

public static void registerglobalfilters(globalfiltercollection filters)

/// /// 2.自己定義的過濾器 處理異常跳轉錯誤頁

/// 捕獲異常 跳轉到錯誤頁

///

public class exceptionfilterattribute : handleerrorattribute

}

當asp.net mvc程式出現了異常,怎麼處理更加規範?

1. 最簡單的方法是設定節點

節點用於定義一些自定義錯誤資訊的資訊。此節點有mode和defaultredirect兩個屬性,其中defaultredirect屬性是乙個可選屬性,表示應用程式發生錯誤時重定向到的預設url,如果沒有指定該屬性則顯示一般性錯誤。mode屬性是乙個必選屬性,它有三個可能值,它們所代表的意義分別如下:

on 表示在本地和遠端使用者都會看到自定義錯誤資訊。

off 禁用自定義錯誤資訊,本地和遠端使用者都會看到詳細的錯誤資訊。

remoteonly 表示本地使用者將看到詳細錯誤資訊,而遠端使用者將會看到自定義錯誤資訊。

這裡有必要說明一下本地使用者和遠端使用者的概念。當我們訪問asp.net應用程時所使用的機器和發布asp.net應用程式所使用的機器為同一臺機器時成為本地使用者,反之則稱之為遠端使用者。在開發除錯階段為了便於查詢錯誤mode屬性建議設定為off,而在部署階段應將mode屬性設定為on或者remoteonly,以避免這些詳細的錯誤資訊暴露了程式**細節從而引來黑客的入侵。

子節點在節點下還包含有子節點,這個節點主要是根據伺服器的http錯誤狀態**而重定向到我們自定義的錯誤頁面,注意要使子節點下的配置生效,必須將節點節點的mode屬性設定為「on」。下面是乙個例子:

"

on" defaultredirect="

genericerrorpage.htm

">

"403" redirect="

403.htm

" />

"404" redirect="

404.htm

" />

"500" redirect="

500.htm

"/>

在上面的配置中如果使用者訪問的頁面不存在就會跳轉到404.htm頁面,如果使用者沒有許可權訪問請求的頁面則會跳轉到403.htm頁面,403.htm和404.htm頁面都是我們自己新增的頁面,我們可以在頁面中給出友好的錯誤提示。

2. 使用過濾器handleerrorattribute

3. 自定義顯示路徑

如果遇到異常後不單單是要自定義異常顯示,而且還需要進行日誌記錄。此時,可以通過繼承擴充套件handleerrorattribute來實現新的filter,然後在lobal.ascx中對所有的action進行註冊,filters.add(new myhandleerrorattribute()).在這裡詳細說明一下另一種方式。我們可以寫乙個專門的controller和action來進行異常發生時的路由設定.

public

class

utilitycontroller : controller

public

actionresult pagenotfound()

}

protected

sender, eventargs e)

if(shouldhandleexception)

} }

MVC自定義錯誤頁404靜態頁

昨天公司要求給所有專案新增自定義404錯誤頁,具體的要求實現的有以下幾點 1.實現自定義錯誤 如各種error,404等 跳轉到指定的頁面 2.所指定的頁面輸出的http狀態值必須是404或其他指定的statecode 3.跳轉到的自定義錯誤頁面必須是.html字尾結尾 關於第一點,這個很簡單,大家...

精通MVC3摘譯 3 自定義路由系統

路由系統非常靈活,但是如果這還不能滿足你的 需求,那麼,你可以定製路由系統。建立基於routebase的介面 getroutedata httpcontextbase httpcontext 這是乙個url匹配工作機制。framework依次在每個routetable.routes呼叫這個方法。直到...

MVC 自定義異常錯誤頁需要注意的地方

asp.net mvc3中如果配置檔案出錯了,怎麼跳轉到自定義的錯誤頁,現在參考網上的檔案是說 新增 如下配置檔案,並且在路徑views shared 下新增error頁面,測試下沒有用的,請大家看看有什麼好的建議啊,謝謝了啊!mvc根本不會理睬web.config中的customerrors,預設...