MVC中Action过滤器(OnActionExecuting,OnActionExecuted,OnResultExecuting,OnResultExecued)

OnActionExecuting,OnActionExecuted,OnResultExecuting,OnResultExecuted 从字面我们大概就知道他们运行的顺序了。

    示例:看四个方法的执行次序。定义一个继承ActionFilterAttribute并重写其内部方法的类。

public class SimpleFilterAttribute:ActionFilterAttribute
    {
        public int ID { get; set; }
        public override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            File.AppendAllText(@"F:/actionlog.txt", this.ID +" "+ "OnActionExecuting
");
        }


        public override void OnActionExecuted(ActionExecutedContext filterContext)
        {
            File.AppendAllText(@"F:/actionlog.txt", this.ID + " " + "OnActionExecuted  
");
        }


        public override void OnResultExecuting(ResultExecutingContext filterContext)
        {
            File.AppendAllText(@"F:/actionlog.txt", this.ID + " " + "OnResultExecuting
");
        }


        public override void OnResultExecuted(ResultExecutedContext filterContext)
        {
            File.AppendAllText(@"F:/actionlog.txt", this.ID + " " + "OnResultExecuted
");
        }
    }
   1.OnActionExecuting 
       在Action方法调用前使用,使用场景:如何验证登录等。


   2.OnActionExecuted
    
  在Action方法调用后,result方法调用前执行,使用场景:异常处理。


   3.OnResultExecuting
     在result执行前发生(在view 呈现前),使用场景:设置客户端缓存,服务器端压缩.


  4.OnResultExecuted
    在result执行后发生,使用场景:异常处理,页面尾部输出调试信息。






你可能感兴趣的:(.net基础知识,C#)