解决方法
不,本身没有页面生命周期(因为没有’page’对象),但是有一个请求处理管道,通常是这样的:
> System.Web.Routing.UrlRoutingModule接收传入请求,该请求使用请求URL将请求映射到控制器操作方法.
>实例化适当的控制器
>可能会发生模型绑定和输入验证
>调用控制器和/或操作上的OnActionExecuting-操作方法过滤器
>调用操作方法本身
>调用任何OnActionExecuted和OnResultExecuting-actions of actions过滤器
>执行Action方法返回的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的答案,找到一个很好的图表的链接,总结了很多.