ASP.NETMVC的篩選器有哪些-創(chuàng)新互聯(lián)

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

創(chuàng)新互聯(lián)是一家專業(yè)提供西安企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作HTML5建站、小程序制作等業(yè)務(wù)。10年已為西安眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站制作公司優(yōu)惠進(jìn)行中。

一、Filter

雖然ASP.NETMVC提供的四種類型的篩選器具有各自實(shí)現(xiàn)的接口,但是對于篩選器的提供體系來說所有的篩選器都通過具有如下定義的Filter類型表示。Filter的核心是Instance屬性,因?yàn)樗碚嬲龑?shí)施篩選功能的對象,該對象實(shí)現(xiàn)了一個(gè)或者多個(gè)基于上述四種篩選器類型的接口。

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的提供機(jī)制與之前我們介紹的基于ModelBinder和ModelValidator的提供機(jī)制比較類似,均是通過相應(yīng)的Provider來提供的。提供篩選器的FilterProvider實(shí)現(xiàn)了接口IFilterProvider,如下面的代碼片斷所示,該接口定義了的方法GetFilters根據(jù)指定的Controller上下文和用于描述目標(biāo)Action的ActionDescriptor對象獲取一個(gè)Filter對象集合。

1:publicinterfaceIFilterProvider

2:{

3:IEnumerableGetFilters(ControllerContextcontrollerContext,

ActionDescriptoractionDescriptor);

4:}

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

三、FilterAttribute與FilterAttributeFilterProvider

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

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特性,實(shí)際上Controller本身(繼承自抽象類Controller)就是一個(gè)篩選器。如下面的代碼片斷所示,抽象類Controller實(shí)現(xiàn)了IActionFilter、IAuthorizationFilter、IExceptionFilter和IResultFilter這四個(gè)對應(yīng)著不同篩選器類型的接口。

1:publicabstractclassController:ControllerBase,

2:IActionFilter,

3:IAuthorizationFilter,

4:IExceptionFilter,

5:IResultFilter,

6:...

7:{

8://省略成員

9:}

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

到此,相信大家對“ASP.NET MVC的篩選器有哪些”有了更深的了解,不妨來實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)建站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

新聞名稱:ASP.NETMVC的篩選器有哪些-創(chuàng)新互聯(lián)
新聞來源:http://m.kartarina.com/article48/ccghep.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營銷微信小程序商城網(wǎng)站響應(yīng)式網(wǎng)站品牌網(wǎng)站設(shè)計(jì)搜索引擎優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)
主站蜘蛛池模板: 亚洲乱亚洲乱少妇无码| 国产精品亚洲专区无码不卡| 国产亚洲3p无码一区二区| 亚洲乱码无码永久不卡在线| 免费无码作爱视频| 亚洲色无码国产精品网站可下载| 免费A级毛片无码A| 精品久久久无码21p发布| 国产精品无码久久av| 亚洲国产日产无码精品| 成在线人免费无码高潮喷水| 人妻少妇看A偷人无码电影| 黄A无码片内射无码视频| 日本无码一区二区三区白峰美| 亚洲日韩精品A∨片无码| 国产精品无码av天天爽| 最新亚洲春色Av无码专区| 亚洲国产AV无码专区亚洲AV| 人妻无码一区二区三区| 亚洲AV成人片无码网站| 欧洲Av无码放荡人妇网站 | 中文字幕无码久久人妻| 久久久久久精品无码人妻| 国产亚洲AV无码AV男人的天堂| 一区二区三区无码高清视频| 无码人妻丰满熟妇片毛片| 日韩av无码久久精品免费| 亚洲日韩欧洲无码av夜夜摸| 国产AV无码专区亚洲AV手机麻豆| 成人免费无码大片A毛片抽搐色欲| 色偷偷一区二区无码视频| 国产精品无码午夜福利| 亚洲av中文无码乱人伦在线播放| 影院无码人妻精品一区二区| 真人无码作爱免费视频| 精品人妻无码专区在中文字幕| MM1313亚洲精品无码久久| 特黄熟妇丰满人妻无码| 无码人妻一区二区三区精品视频| 无码日韩人妻精品久久| 免费无码专区毛片高潮喷水|