ASP.NET MVC 提供 Action Filter 機制,允許在 Action 執行前後插入邏輯。本文介紹四大核心 Filter 介面、繼承實作方式與常見適用情境。
| 介面 | 用途 | 關鍵方法 |
|---|---|---|
IActionFilter | Action 執行前後邏輯 | OnActionExecuting, OnActionExecuted |
IAuthorizationFilter | 授權驗證(最早執行) | OnAuthorization |
IExceptionFilter | 例外處理 | OnException |
IResultFilter | ActionResult 執行前後 | OnResultExecuting, OnResultExecuted |
public class MyFilter : FilterAttribute, IActionFilter, IResultFilter
{
// 實作介面方法
}
所有 Filter 必須繼承 FilterAttribute,並實作一個或多個介面。
[Authorize] 即基於此)。理解四大 Filter 介面職責與執行順序,能精準將橫切邏輯注入正確管線階段,避免在 Controller 中重複撰寫樣板代碼。