亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ASP.NET MVC的篩選器有哪些

發布時間:2021-11-02 10:42:34 來源:億速云 閱讀:145 作者:iii 欄目:編程語言

本篇內容主要講解“ASP.NET MVC的篩選器有哪些”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“ASP.NET MVC的篩選器有哪些”吧!

  一、Filter

  雖然ASP.NETMVC提供的四種類型的篩選器具有各自實現的接口,但是對于篩選器的提供體系來說所有的篩選器都通過具有如下定義的Filter類型表示。Filter的核心是Instance屬性,因為它代表真正實施篩選功能的對象,該對象實現了一個或者多個基于上述四種篩選器類型的接口。

  1:publicclassFilter

  2:{

  3:publicconstintDefaultOrder=-1;

  4:publicFilter(objectinstance,FilterScopescope,int?order);

  5:

  6:publicobjectInstance{get;protectedset;}

  7:publicintOrder{get;protectedset;}

  8:publicFilterScopeScope{get;protectedset;}

  9:}

  10:

  11:publicenumFilterScope

  12:{

  13:Action=30,

  14:Controller=20,

  15:First=0,

  16:Global=10,

  17:Last=100

  18:}

  二、FilterProvider

  Filter的提供機制與之前我們介紹的基于ModelBinder和ModelValidator的提供機制比較類似,均是通過相應的Provider來提供的。提供篩選器的FilterProvider實現了接口IFilterProvider,如下面的代碼片斷所示,該接口定義了唯一的方法GetFilters根據指定的Controller上下文和用于描述目標Action的ActionDescriptor對象獲取一個Filter對象集合。

  1:publicinterfaceIFilterProvider

  2:{

  3:IEnumerableGetFilters(ControllerContextcontrollerContext,

  ActionDescriptoractionDescriptor);

  4:}

  ASP.NETMVC有幾種類型的篩選器

  三、FilterAttribute與FilterAttributeFilterProvider

  我們通常將篩選器定義成特性以聲明的方式應用到Controller類型或者Action方法上,而抽象類型FilterAttribute是所有篩選器的基類。如下面的代碼片斷所示,FilterAttribute特性實現了IMvcFilter接口,該接口定義了Order和AllowMultiple兩個只讀屬性,分別用于控制篩選器的執行順序以及多個同類的篩選器能夠同時應用到同一個目標元素(類或者方法)。

  1:[AttributeUsage(AttributeTargets.Method|AttributeTargets.Class,Inherited=true,AllowMultiple=false)]2:publicabstractclassFilterAttribute:Attribute,IMvcFilter3:{4:protectedFilterAttribute();5:6:publicboolAllowMultiple{get;}7:publicintOrder{get;set;}8:}9:10:publicinterfaceIMvcFilter11:{12:boolAllowMultiple{get;}13:intOrder{get;}14:}

  四、Controller與ControllerInstanceFilterProvider

  提到ASP.NETMVC的篩選器,大部分的都只會想到通過FilterAttribute特性,實際上Controller本身(繼承自抽象類Controller)就是一個篩選器。如下面的代碼片斷所示,抽象類Controller實現了IActionFilter、IAuthorizationFilter、IExceptionFilter和IResultFilter這四個對應著不同篩選器類型的接口。

  1:publicabstractclassController:ControllerBase,

  2:IActionFilter,

  3:IAuthorizationFilter,

  4:IExceptionFilter,

  5:IResultFilter,

  6:...

  7:{

  8://省略成員

  9:}

  針對Controller對象這種獨特篩選器的FilterProvider類型為具有如下定義的ControllerInstanceFilterProvider。在實現的GetFilters方法中,它會根據指定的Controller上下文獲取對應的Controller對象,并以此創建一個Filter(Controller對象作為Filter對象的Instance屬性值)。該Filter的Scope不是Controller,而是First,而Order的值為-2147483648(Int32.MinValue),毫無疑問這樣的Filter肯定第一個被執行。

到此,相信大家對“ASP.NET MVC的篩選器有哪些”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

崇阳县| 岑巩县| 连州市| 洛浦县| 云龙县| 沂源县| 鄂托克前旗| 嵊州市| 西城区| 绥宁县| 博客| 肇东市| 攀枝花市| 马关县| 渝中区| 运城市| 诏安县| 平谷区| 淮滨县| 调兵山市| 屏南县| 上思县| 南宁市| 岑溪市| 吉安县| 涿州市| 峨眉山市| 海南省| 宁海县| 南康市| 洱源县| 分宜县| 林周县| 寿光市| 三都| 远安县| 柞水县| 汪清县| 临朐县| 拉萨市| 屏东市|