MVC 3 0 學習筆記(強大的過濾器)

2021-06-08 20:25:45 字數 2418 閱讀 2286

操作篩選器的某些可能用途包括:

asp.net mvc 支援以下型別的操作篩選器:

篩選器執行順序

篩選器按下列順序執行:

授權篩選器

操作篩選器

響應篩選器

異常篩選器

例如,授權篩選器最先執行,異常篩選器最後執行。

在每個篩選器型別中,order 值將指定執行順序。

在每個篩選器型別和順序中,scope 模擬值將指定篩選器的順序。

此列舉將定義以下篩選器範圍值(按它們執行的順序):

first

global

controller

action

last

例如,其 order 屬性設定為 0 且篩選器範圍設定為 first 的操作篩選器將在其 order 屬性設定為 0 且篩選器範圍設定為 action 的操作篩選器之前執行。

未定義具有相同型別、順序和範圍的篩選器的執行順序

例項:建立自定義操作篩選器

回顧一下asp.net mvc 操作篩選器的執行順序,框架將先呼叫操作篩選器的 onactionexecuting 方法,然後再呼叫以操作篩選器特性標記的任意操作方法。

同樣,該框架將在操作方法完成後呼叫 onactionexecuted 方法。

呼叫 onresultexecuting 方法後,要立即呼叫您的操作返回的 actionresult 例項。

執行結果後,緊接著就要呼叫 onresultexecuted 方法。

這些方法對於執行日誌記錄、快取輸出結果之類的操作非常有用。

建立乙個名為loggingfilterattribute的類

跟上面所說一樣該類繼承了actionfilterattribute表示操作特性的基類。

**

public

class

loggingfilterattribute : actionfilterattribute

public

override

void

onactionexecuted(actionexecutedcontext filtercontext)

}

此處我們只是設定了兩個值,放在頁面上做對照,完全可以換成日誌功能。

呼叫操作篩選器

在controller中新建index方法在上面加上剛剛定義的篩選標誌[loggingfilter]

////

get: /person/

[loggingfilter]

public

actionresult index()

view**

<

h2>

@viewdata["mess1"]

h2>

<

h2>

@viewdata["mess2"]

h2>

這一結果完全驗證了,篩選器的工作順序。onactionexecuting-->action-->onactionexecuted

如果有多個篩選的話我們可以用order來將他們一一列出順序。預設order為-1.

////

get: /person/

[loggingfilter(order =1

)] [loggingfilter1(order =0

)]

public

actionresult index()

對指定的控制器採用不同的篩選

在asp.net mvc controller 類中我們可以重寫的 onactionexecuting 和 onactionexecuted 方法。

這樣重寫這些方法中的乙個或全部時,我們的邏輯將在該控制器的所有操作方法之前或之後執行。

此功能類似於操作篩選器,但方法侷限於控制器範圍。

此時我們就不需要單獨去在action上面去呼叫他了,因為該controller 中的篩選已經被重寫。並且僅屬於該controller 。

**

[nonaction]

protected

override

void

onactionexecuting(actionexecutingcontext filtercontext)

[nonaction]

protected

override

void

onactionexecuted(actionexecutedcontext filtercontext)

MVC的過濾器

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

MVC3 0的學習小總結

學習首先得找個好老師,這邊部落格講的相當不錯,可供參考 碰到的問題 2 新增model層的時候基本是跟以前的寫法類似,只是如果需要表單要驗證之類的,需要重寫,以下可以直接訪問這個部落格,3 controllers層,需要你寫控制器,自己編造些值,直接寫個方法呼叫展示。未來資料庫訪問也是在這裡寫的 4...

servlet過濾器學習筆記

過濾器作用 預先處理需要訪問的頁面,比如登入檢測,編碼轉換等 基礎使用 傳統的xml方式需要在web.xml裡配置,配置方式與servlet類似 現在的annotation配置比較方便 分類,過濾器有五種 request 對請求進行攔截,具體攔截可以自行指定,也可以萬用字元指定,比如 do,但是如果...