ASP.NET MVC ActionFilterAttribute的执行顺序
2015-09-09 15:31
826 查看
http://diaosbook.com/Post/2014/6/3/execution-order-of-actionfilter-aspnet-mvc
ASP.NET MVC里面我们要自定义ActionFilter的时候会发现有4个方法可以override:OnActionExecuting,OnActionExecuted,OnResultExecuting,OnResultExecuted。他们分别在什么时候执行一直是困扰人类的一个问题。我代表人类做了一个简单的实验:
首先自定义一个ActionFilter,每个方法执行的时候都在VS的OUTPUT窗口输出信息:
Controller里为了搞清执行顺序,也需要输出:
最后是View:
执行结果是这样的,有图有JJ:
1. OnActionExecuting
2. Before return View()
3. OnActionExecuted
4. OnResultExecuting
5. Hello from Index.cshtml
6. OnResultExecuted
ASP.NET MVC里面我们要自定义ActionFilter的时候会发现有4个方法可以override:OnActionExecuting,OnActionExecuted,OnResultExecuting,OnResultExecuted。他们分别在什么时候执行一直是困扰人类的一个问题。我代表人类做了一个简单的实验:
首先自定义一个ActionFilter,每个方法执行的时候都在VS的OUTPUT窗口输出信息:
public class TestActionFilter : ActionFilterAttribute { public override void OnActionExecuting(ActionExecutingContext filterContext) { Debug.WriteLine("OnActionExecuting"); base.OnActionExecuting(filterContext); } public override void OnActionExecuted(ActionExecutedContext filterContext) { Debug.WriteLine("OnActionExecuted"); base.OnActionExecuted(filterContext); } public override void OnResultExecuting(ResultExecutingContext filterContext) { Debug.WriteLine("OnResultExecuting"); base.OnResultExecuting(filterContext); } public override void OnResultExecuted(ResultExecutedContext filterContext) { Debug.WriteLine("OnResultExecuted"); base.OnResultExecuted(filterContext); } }
Controller里为了搞清执行顺序,也需要输出:
[TestActionFilter] public ActionResult Index() { Debug.WriteLine("Before return View()"); return View(); }
最后是View:
@{ Debug.WriteLine("Hello from Index.cshtml"); }
执行结果是这样的,有图有JJ:
1. OnActionExecuting
2. Before return View()
3. OnActionExecuted
4. OnResultExecuting
5. Hello from Index.cshtml
6. OnResultExecuted
相关文章推荐
- ASP.NET MVC : Action过滤器(Filtering)
- 如何防范ASP木马
- ASP Request.ServerVariables 参数集
- asp.net文件上传带进度条实现案例(多种风格)
- Spring AOP使用ASPECTJ错误
- OWASP Top 10 – 2013, 最新十大安全隐患(ASP.NET解决方法)
- Aspose.Total for Java 系列破解
- ASP.NET MVC4使用SignalR实现实时通讯
- 良精南方cms /inc/Check_Sql.asp SQL Injection Based On Cookie
- ASP.NET成员资格与角色管理配置内容
- ASP.Net TextBox只读时不能通过后台赋值取值
- Aspose.words Mail Merge初识
- RaspberryPi下apt-get离线安装软件
- 【MVC5】ASP.NET MVC 项目笔记汇总
- IIS对Asp.Net WebForm和Asp.Net Mvc的处理通用部分
- 【深入ASP.NET原理系列】--ASP.NET请求管道对Asp.Net WebForm和Asp.Net Mvc的处理通用部分
- Asp.net 两个链接实现虾米音乐搜索
- asp.net用户自定义控件传参
- Asp.net MVC 与 Asp.net Web API 区别
- asp.net为关键词加上超链接,C#.net 为关键词加上超链接