15

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

4

2 回答 2

22

以下是详细步骤:

  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. 如果发生错误,则执行异常阶段

我还想向您推荐我在许多关于 ASP.NET MVC 的演示文稿中使用的MVC 蛇形图。这是完整的图像:替代文字

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

于 2009-12-30T21:13:39.017 回答
7

查看 Redgates 的免费“ ASP.NET MVC 请求处理管道”海报以了解执行流程

Steven Sanderson 的 MCV 书了解详细信息。

于 2009-12-30T21:22:50.713 回答