MVCフィルター属性

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の後に実行されます 

おすすめ

転載: www.cnblogs.com/mq0036/p/12748596.html