ASP.NET MVC的过滤器笔记
過濾器概念
APS.NET MVC中(以下簡稱“MVC”)的每一個請求,都會分配給相應的控制器和對應的行為方法去處理,而在這些處理的前前后后如果想再加一些額外的邏輯處理。這時候就用到了過濾器。
1、過濾器(Filters)就是向請求處理管道中注入額外的邏輯。提供了一個簡單而優雅的方式來實現橫切關注點。
2、所謂的過濾器(Filters),MVC框架里面的過濾器完全不同于ASP.NET平臺里面的Request.Filters和Response.Filter對象,它們主要是實現請求和響應流的傳輸。通常我們所說的過濾器是指MVC框架里面的過濾器。
3、過濾器可以注入一些代碼邏輯到請求處理管道中,是基于C#的Attribute的實現。當負責調用Action的類ControllerActionInvoker在調用執行Action的時候會檢查Action上面的Attribute并查看這些Attribute是否實現了指定的接口,以便進行額外的代碼注入處理
過濾器分類
MVC支持的過濾器類型有四種,分別是:Authorization(授權),Action(行為),Result(結果)和Exception(異常)。如下表,
過濾器類型 | 接口 | 描述 |
Authorization | IAuthorizationFilter | 此類型(或過濾器)用于限制進入控制器或控制器的某個行為方法 |
Exception | IExceptionFilter | 用于指定一個行為,這個被指定的行為處理某個行為方法或某個控制器里面拋出的異常 |
Action | IActionFilter | 用于進入行為之前或之后的處理 |
Result | IResultFilter | 用于返回結果的之前或之后的處理 |
但是默認實現它們的過濾器只有三種,分別是Authorize(授權),ActionFilter,HandleError(錯誤處理);各種信息如下表所示
過濾器 | 類名 | 實現接口 | 描述 |
ActionFilter | AuthorizeAttribute | IAuthorizationFilter | 此類型(或過濾器)用于限制進入控制器或控制器的某個行為方法 |
HandleError | HandleErrorAttribute | IExceptionFilter | 用于指定一個行為,這個被指定的行為處理某個行為方法或某個控制器里面拋出的異常 |
自定義 | ActionFilterAttribute | IActionFilter和IResultFilter | 用于進入行為之前或之后的處理或返回結果的之前或之后的處理 |
總結
以上是生活随笔為你收集整理的ASP.NET MVC的过滤器笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: stylus之插值(Interpolat
- 下一篇: IIS上部署asp.net core2.