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

2021-07-10 13:11:39 字數 2367 閱讀 1175

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」。下面是乙個例子:

[html]view plain

copy

<

customerrors

mode

="on"

defaultredirect

="genericerrorpage.htm"

>

<

error

statuscode

="403"

redirect

="403.htm"

/>

<

error

statuscode

="404"

redirect

="404.htm"

/>

customerrors

>

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

2. 使用過濾器handleerrorattribute

3. 自定義顯示路徑

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

[csharp]view plain

copy

public

class

utilitycontroller : controller  

public

actionresult pagenotfound()  

}  [csharp]view plain

copy

protected

void

object

sender, eventargs e)  

if(shouldhandleexception)  

}  

MVC自定義錯誤頁404靜態頁

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

自定義 LayoutManger需要注意的幾個地方

最近寫銷控表,需要有上萬個資料 的情況,首先感謝 的帖主,給了大家乙個非常好的例子。本文也是根據他的帖子的原理,整理了自己在編寫銷控表的時候遇到的問題。很多demo 在onlayoutchildren 方法中 進行兩個動作,乙個是計算得到真實的最大寬高,乙個是進行layout的動作,我的觀點,一旦外...

MVC3 自定義的錯誤頁

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