以屬性形式標註在 Action 或 Controller 上,MVC 內建:
OutputCache:快取 Action 結果指定秒數HandleError:處理 Action 拋出的異常Authorize:限制特定用戶/角色存取亦可自訂過濾器(自訂驗證、修改回傳資料等)。一個 Action 可套用多個過濾器,亦可套用於整個 Controller。
public class DataController : Controller
{
[OutputCache(Duration=10)]
public string Index()
{
return DateTime.Now.ToString("T");
}
}
10 秒內重複請求回傳相同時間字串。
IAuthorizationFilter):驗證授權,如 Authorize。最先執行。IActionFilter):Action 執行前/後邏輯,可修改回傳資料。IResultFilter):View 結果產生前/後邏輯,可修改輸出。IExceptionFilter):處理 Action/Result 異常、記錄日誌。最後執行。預設順序如上,可用 Order 屬性調整。
繼承 FilterAttribute 並實作一或多介面。MVC 提供 ActionFilterAttribute 已實作 IActionFilter、IResultFilter,可覆寫:
OnActionExecuting(Action 前)OnActionExecuted(Action 後)OnResultExecuting(Result 前)OnResultExecuted(Result 後)