ASP.NET MVC4没有像普通aspx页面那样的页面生命周期。如何在MVC4中使用preinit,init,prerender?
MVC4中是否存在某种类型的生命周期?
发布于 2013-07-31 02:02:41
不,页面本身没有生命周期(因为没有' page‘对象),但是有一个请求处理管道,它通常是这样的:
System.Web.Routing.UrlRoutingModule拾取,该url使用请求url将请求映射到控制器操作方法。OnActionExecuting-methods <代码>H111操作方法本身被调用<代码>H212<代码>H113任何<代码>D14和<代码>D15-调用操作筛选器的方法H216<代码>H117由操作方法返回的<代码>D18呈现超文本标记语言的ViewResult ) is executed.
OnResultExecuted-methods of action filters is HTML。上面的列表只是一个粗略的草图:
路由:传入请求到MVC控制器的操作方法的映射本身就是一个故事。有关详细信息,请参阅ASP.NET Routing on MSDN。
操作筛选器:有用于授权、输出缓存、错误处理等的操作筛选器,所有这些都在某个时间运行。这一次,请参阅Filtering in ASP.NET MVC on MSDN了解更多信息。
ASP.NET:当然,还有所有的traditional ASP.NET application events。因此,像System.Web.Security.FormsAuthenticationModule和System.Web.Caching.OutputCacheModule这样的HTTP模块仍然可以参与请求的处理。
如果你想深入研究细节,可以从CodePlex下载ASP.NET web堆栈的源代码。您需要的大部分内容都将放在System.Web.Mvc.ControllerActionInvoker类中,尽管这个类的名字很吓人,但并不难理解。
请参阅Dejan的答案,以获得一个很好的图表的链接,该图表总结了大部分内容。
发布于 2013-07-31 02:05:50
请求通过HTTP路由
Global.asax.cs文件中列出,当我们的请求与这些映射路由之一匹配时,我们在Msdn文档可以在http://msdn.microsoft.com/en-us/library/dd381612(v=vs.98).aspx上找到。
发布于 2014-03-06 00:03:09
你可以看看这篇名为"Lifecycle of an ASP.NET MVC 5 Application“的文章,它大约是在一周前发表的。这也是一个可以下载的PDF file。
https://stackoverflow.com/questions/17953756
复制相似问题