ActionFilterAttribute、里面有4虚メソッド
public virtual void OnActionExecuted(ActionExecutedContext filterContext);
public virtual void OnActionExecuting(ActionExecutingContext filterContext);
public virtual void OnResultExecuted(ResultExecutedContext filterContext);
public virtual void OnResultExecuting(ResultExecutingContext filterContext);
最初に、ActionFilterAttributeから継承されたMyActionFilterAttributeという名前のクラスをモデルに作成します
その中に名前を定義し、4つの仮想メソッドをリロードします。出力プロンプトを追加します
公開文字列Name {get; セットする; }
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
base.OnActionExecuting(filterContext);
HttpContext.Current.Response.Write( "<br /> OnActionExecuting" + this.Name);
}
public override void OnResultExecuting(ResultExecutingContext filterContext)
{
base.OnResultExecuting(filterContext);
HttpContext.Current.Response.Write( "<br /> OnResultExecuting" + this.Name);
}
public override void OnActionExecuted(ActionExecutedContext filterContext)
{
base.OnActionExecuted(filterContext);
HttpContext.Current.Response.Write( "<br /> OnActionExecuted" + this.Name);
}
public override void OnResultExecuted(ResultExecutedContext filterContext)
{
base.OnResultExecuted(filterContext);
HttpContext.Current.Response.Write( "<br /> OnResultExecuted" + this.Name);
}
FilterControllerという名前の新しいコントローラーを作成して書き込みます
[MyActionFilterAttribute(Name = "Index Action")]
public ActionResult Index()
{
Response.Write( "<p> Action completed </>");
return Content( "<br />レンダリングを試行中");
}
フィルターコントローラーのインデックスアクションメソッドを入力します
結果を表示:
OnActionExecutingインデックスアクション
実行されたアクション
OnActionExecutedインデックスアクション
OnResultExecutingインデックスアクション
がレンダリングされました
OnResultExecutedインデックスアクション
OnActionExecutingはアクションの前に実行されることを説明する
OnActionExecutedはアクションの後に実行されます
OnResultExecutingはViewの前に実行されます
OnResultExecutedはViewの後に実行されます
出典:https : //www.cnblogs.com/Jack-Blog/p/4058112.html
ActionFilterAttribute、里面有4虚メソッド
public virtual void OnActionExecuted(ActionExecutedContext filterContext);
public virtual void OnActionExecuting(ActionExecutingContext filterContext);
public virtual void OnResultExecuted(ResultExecutedContext filterContext);
public virtual void OnResultExecuting(ResultExecutingContext filterContext);
最初に、ActionFilterAttributeから継承されたMyActionFilterAttributeという名前のクラスをモデルに作成します
その中に名前を定義し、4つの仮想メソッドをリロードします。出力プロンプトを追加します
公開文字列Name {get; セットする; }
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
base.OnActionExecuting(filterContext);
HttpContext.Current.Response.Write( "<br /> OnActionExecuting" + this.Name);
}
public override void OnResultExecuting(ResultExecutingContext filterContext)
{
base.OnResultExecuting(filterContext);
HttpContext.Current.Response.Write( "<br /> OnResultExecuting" + this.Name);
}
public override void OnActionExecuted(ActionExecutedContext filterContext)
{
base.OnActionExecuted(filterContext);
HttpContext.Current.Response.Write( "<br /> OnActionExecuted" + this.Name);
}
public override void OnResultExecuted(ResultExecutedContext filterContext)
{
base.OnResultExecuted(filterContext);
HttpContext.Current.Response.Write( "<br /> OnResultExecuted" + this.Name);
}
FilterControllerという名前の新しいコントローラーを作成して書き込みます
[MyActionFilterAttribute(Name = "Index Action")]
public ActionResult Index()
{
Response.Write( "<p> Action completed </>");
return Content( "<br />レンダリングを試行中");
}
フィルターコントローラーのインデックスアクションメソッドを入力します
結果を表示:
OnActionExecutingインデックスアクション
実行されたアクション
OnActionExecutedインデックスアクション
OnResultExecutingインデックスアクション
がレンダリングされました
OnResultExecutedインデックスアクション
OnActionExecutingはアクションの前に実行されることを説明する
OnActionExecutedはアクションの後に実行されます
OnResultExecutingはViewの前に実行されます
OnResultExecutedはViewの後に実行されます