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中
publicclass
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等這些錯誤不進行處理,如...