Understanding Action Filters-理解Action篩選器

原文鏈接:Understanding Action Filters

一、定義

Action篩選器一個屬性可以應用控制器Action方法 — — 整個控制器 — — 修改其中執行Action方式

  • 1.OutputCache – Action篩選器緩存 控制器的Action輸出 指定時間

  • 2.HandleError – Action篩選器處理引發控制器Action執行錯誤

  • 3.Authorize – 操作篩選器使可以限制特定用戶角色訪問

可以創建自己自定義操作篩選器例如可能創建一個自定義操作篩選器執行自定義身份驗證系統或者可能創建操作篩選器修改視圖數據返回一個控制器動作

二、默認分類

ASP.NET MVC 框架支持四種不同類型篩選器

  1. Authorization filters – Implements the IAuthorizationFilter attribute.

  2. Action filters – Implements the IActionFilter attribute.

  3. Result filters – Implements the IResultFilter attribute.

  4. Exception filters – Implements the IExceptionFilter attribute.

執行順序:授權篩選器優先級最高;異常篩選器優先級最低。

  1. Authorization篩選器用來實現身份驗證和授權控制器操作。例如,Authorize篩選器是Authorization篩選器示例。

  2. Action篩選器包含的邏輯,執行之前和之後的控制器操作執行。您可以使用操作篩選器,例如,修改控制器操作返回的視圖數據。

  3. Result篩選器包含的邏輯,執行之前和之後執行視圖結果。例如,您可能想要修改視圖結果在視圖呈現到瀏覽器之前。

  4. Exception篩選器是最後一種類型的篩選器來運行。異常篩選器可用於處理由您的控制器操作或控制器操作結果引發的錯誤。您還可以使用異常篩選器記錄錯誤。

    不同類型篩選器特定順序執行如果控制其中執行相同類型篩選器順序然後可以設置篩選器的 Order 屬性

    所有操作篩選器基類 System.Web.Mvc.FilterAttribute 如果執行特定類型篩選器然後需要創建一個篩選器基類繼承實現一個更多 IAuthorizationFilter IActionFilter IResultFilter ExceptionFilter 接口

三、ActionFilterAttribute基類

        爲了更容易執行自定義操作篩選器ASP.NET MVC 框架提供 ActionFilterAttribute 基類實現 IActionFilter IResultFilter 接口篩選器繼承

  從技術上講 ActionFilterAttribute 繼承操作篩選器結果篩選器然而,整體來說,操作篩選器用於任何類型 ASP.NET MVC 框架篩選器

  ActionFilterAttribute基類有四個方法可以被重寫:

  • OnActionExecuting – This method is called before a controller action is executed.

  • OnActionExecuted – This method is called after a controller action is executed.

  • OnResultExecuting – This method is called before a controller action result is executed.

  • OnResultExecuted – This method is called after a controller action result is executed.


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章