MVC過濾器詳解和示例

2022-05-15 02:33:11 字數 2277 閱讀 8013

mvc過濾器一共分為四個:actionfilter(方法過濾器),resultfilter(結果過濾器),authorizationfilter(授權過濾器),exceptionfilter(異常處理過濾器)

過濾器型別

介面預設實現

描述action

iactionfilter

actionfilterattribute

在動作方法之前及之後執行

result

iresultfilter

actionfilterattribute

在動作結果被執行之前和之後執行

authorizationfilter

iauthorizationfilter

authorizeattribute

首先執行,在任何其它過濾器動作方法之前執行

exception

iexceptionfilter

handleerrorattribute

只在另外乙個過濾器,動作方法,動作結果彈出異常時執行

示例:action方法過濾器

///

///action方法 過濾器 類

"哇哈哈哈~!onactionexecuting

");

base

.onactionexecuting(filtercontext);

} //////

在 action方法之後 呼叫

///

///public

override

void

onactionexecuted(actionexecutedcontext filtercontext)

使用方法1:將過濾器加到方法上

[filters.myactionfilter]//

1.將 過濾器 加到方法上

[filters.money]

[filters.myresultfilter]

[filters.myauthorize]

public

actionresult index()

使用方法2:將過濾器加到方法上

[filters.myactionfilter]  

public

class

homecontroller : controller

使用方法3:新增全域性過濾器,即新增到filterconfig.cs中

public

class

filterconfig

}

示例:result過濾器

///

///result 過濾器 類 - 如果請求的是 要載入檢視的 action 方法的話

///在 檢視載入 前 後 呼叫方法

///public

class

myresultfilterattribute:system.web.mvc.actionfilterattribute

//////

載入"檢視" 後執行

///

///public

override

void

onresultexecuted(system.web.mvc.resultexecutedcontext filtercontext)

}

示例:授權過濾器 - 在 action過濾器前 執行

///

///授權過濾器 - 在 action過濾器前 執行

///

public

class

myauthorizeattribute:authorizeattribute

}

示例:exception過濾器

///

///異常處理 過濾器

///

public

class

myhandleerrorattribute : handleerrorattribute

}

MVC過濾器 過濾器執行順序

如果某個action過濾器運用了多種過濾器,那麼過濾器的執行順序是如何呢?即執行順序是 授權過濾器 動作過濾器 結果過濾器 異常過濾器。注意 如果actionfilter過濾器執行過程中發生了異常,那麼會執行exceptionfilter過濾器,不會執行resultfilter過濾器。上圖所示的是正...

MVC的過濾器

過濾器分類 action過濾器 view結果渲染過濾器 全域性錯誤異常過濾器 身份驗證過濾器 1.action過濾器 在action執行之前和執行之後分別幹一些事 介面 iactionfilter 2.view結果渲染過濾器 介面 iactionfilter attributeusage attri...

Mvc 異常過濾器

mvc自帶乙個異常過濾器即handleerrorattribute 1.首先要進行配置web.config defaultredirect表示需要跳轉的錯誤頁面,mode需設定為 on或者 remoteonly.注 handleerror只處理伺服器500錯誤,404 400等這些錯誤不進行處理,如...