首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> 關於ASP.NET

ASP.NET MVC Action Filter 核心介紹:四大 Filter 介面、繼承架構與適用情境總覽

     編輯:關於ASP.NET

前言

ASP.NET MVC 提供 Action Filter 機制,允許在 Action 執行前後插入邏輯。本文介紹四大核心 Filter 介面、繼承實作方式與常見適用情境。

四大 Filter 介面

介面用途關鍵方法
IActionFilterAction 執行前後邏輯OnActionExecuting, OnActionExecuted
IAuthorizationFilter授權驗證(最早執行)OnAuthorization
IExceptionFilter例外處理OnException
IResultFilterActionResult 執行前後OnResultExecuting, OnResultExecuted

實作基類結構

public class MyFilter : FilterAttribute, IActionFilter, IResultFilter
{
    // 實作介面方法
}

所有 Filter 必須繼承 FilterAttribute,並實作一個或多個介面。

執行順序

  1. IAuthorizationFilter.OnAuthorization(授權檢查,失敗可短路)
  2. IActionFilter.OnActionExecuting
  3. Action 方法本體
  4. IActionFilter.OnActionExecuted
  5. IResultFilter.OnResultExecuting
  6. ActionResult 執行(如 View 渲染)
  7. IResultFilter.OnResultExecuted
  8. 發生例外時: IExceptionFilter.OnException

常見適用情境

  • 日誌/稽核:記錄請求參數、執行時間、使用者資訊。
  • 身分驗證/授權:檢查登入狀態、角色權限([Authorize] 即基於此)。
  • 輸出快取:在 Result 階段快取輸出內容。
  • 爬蟲過濾:識別 User-Agent 封鎖惡意爬蟲。
  • 本地化:依語言偏好設定 Culture。
  • 動態 Action:運行時注入 Action 方法。

結語

理解四大 Filter 介面職責與執行順序,能精準將橫切邏輯注入正確管線階段,避免在 Controller 中重複撰寫樣板代碼。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved