標籤:tle 方式 基類 cep 過濾器 blog exception tar not
在Mvc中為Action添加過濾器,有兩種方式,
一、使用ActionFilterAttribute,簡單方式,同時支援Result的過濾處理,
1.可以為空白,支援的重寫:OnActionExecuted,OnActionExecuting,OnResultExecuted,OnResultExecuting
2.支援類定義或方法定義
3.不支援多個過濾器執行個體,我的理解是一個action只能指定一個過濾器,目前還沒有驗證。
// // 摘要: // 表示篩選器特性的基類。 [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, Inherited = true, AllowMultiple = false)] public abstract class ActionFilterAttribute : FilterAttribute, IActionFilter, IResultFilter
空使用執行個體:
public class AboveLogin2Attibute : ActionFilterAttribute{}
二、使用IActionFilter介面
1.專門用來處理Action的過濾處理
2.因為是介面,必須實現OnActionExecuted和OnActionExecuting
3.此方式可以通過FilterAttribute,指定執行順序,配置是否可指定篩選器特性的多個執行個體
// // 摘要: // 定義操作篩選器中使用的方法。 public interface IActionFilter { // // 摘要: // 在執行操作方法後調用。 // // 參數: // filterContext: // 篩選器上下文。 void OnActionExecuted(ActionExecutedContext filterContext); // // 摘要: // 在執行操作方法之前調用。 // // 參數: // filterContext: // 篩選器上下文。 void OnActionExecuting(ActionExecutingContext filterContext); }
空使用執行個體:
public class AboveLoginAttibute : FilterAttribute, IActionFilter{ public void OnActionExecuted(ActionExecutedContext filterContext) { throw new NotImplementedException(); } public void OnActionExecuting(ActionExecutingContext filterContext) { throw new NotImplementedException(); }}
更多參考:
MVC4 過濾器(轉)
Action過濾器使用執行個體(一)
Asp.Net Mvc Action過濾器(二)