MVC中的执行流程

Mah*_*aga 15 asp.net-mvc functional-programming internal request control-flow

我正在尝试详细学习MVC,我想知道内部的确切功能流是什么,意味着调用哪些函数(重要函数)以及它们在应用程序启动时执行的操作以及除控制器操作之外调用的函数我们继续在应用程序中编写.

Eil*_*lon 21

以下是详细步骤:

  1. 请求进入ASP.NET
  2. ASP.NET Routing通过调用RouteCollection.GetRouteData来查找路由匹配
  3. 这反过来在每条路线上调用RouteBase.GetRouteData,直到找到匹配为止
  4. 匹配路由的IRouteHandler 调用了GetHttpHandler方法
  5. MvcHandler运行(调用ProcessRequest)
  6. MVC控制器工厂在CreateController中定位并创建控制器
  7. ControllerActionInvoker确定在InvokeAction中运行的操作
  8. 所述AuthorizationFilter阶段执行(这包括控制器本身上的授权方法)
  9. ActionExecuting阶段执行
  10. 执行请求的操作方法
  11. ActionExecuted阶段执行
  12. 如果存在结果对象,则执行ResultExecuting阶段
  13. 如果结果未被取消,则执行ActionResult的ExecuteResult方法
  14. ResultExecuted阶段执行
  15. 如果发生错误,则执行Exception阶段

我还想向您介绍我在ASP.NET MVC的许多演示文稿中使用的MVC Snake Diagram.以下是完整图片:alt text http://weblogs.asp.net/blogs/leftslipper/WindowsLiveWriter/ASP.NETMVCDesignPhilosophy_F491/MVC_Snake_2.png

我链接的博客文章描述了ASP.NET MVC中关于数据如何流经应用程序的一些概念.

  • 这似乎更好:http://www.codethinked.com/post/2008/09/27/ASPNET-MVC-Request-Flow.aspx (3认同)

小智 7

查看Redgates免费的" The ASP.NET MVC Request Handling Pipeline "海报,了解执行流程

史蒂芬桑德森的MCV书的详细信息.