ASP.NET MVC4没有像常规aspx页面那样的页面生命周期。如何在MVC4中使用preinit,init,prerender?
MVC4中是否有任何类型的生命周期?
答案 0 :(得分:10)
不,本身没有页面生命周期(因为没有'page'对象),但是有一个请求处理管道,通常是这样的:
System.Web.Routing.UrlRoutingModule
使用请求网址将请求映射到控制器操作方法来接收传入请求。OnActionExecuting
- 操作方法过滤器OnActionExecuted
和OnResultExecuting
- 操作方法过滤器ActionResult
(通常是呈现HTML的ViewResult
)。OnResultExecuted
- 操作方法过滤器。上面的列表只是一个草图:
路由: 传入请求到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的回答,找到一个很好的图表的链接,总结了很多。
答案 1 :(得分:2)
Global.asax.cs
档案中,当我们的请求与我们前进的其中一条地图路线相匹配时可以在http://msdn.microsoft.com/en-us/library/dd381612(v=vs.98).aspx
上找到msdn文档答案 2 :(得分:0)
你可以查看这篇文章“Lifecycle of an ASP.NET MVC 5 Application”它大约一周前发布了。这也是一个PDF file下载。