理解MVC应用程序的执行过程
2009-06-01 10:42
225 查看
对基于ASP.NET MVC应用程序的请求首先被传递给UrlRoutingModule处理,UrlRoutingModule实现了IHttpModule接口。该模块对请求进行解析然后进行路由选择。UrlRoutingModule
对象从路由表中选择第一个匹配该请求的路由供后继处理使用。如果没有跟请求匹配的路由那么UrlRoutingModule将把请求返回给常规的ASP.NET或者IIS请求处理。从选中的Route对象那里UrlRoutingModule获得跟Route对象相关联的实现了IRouteHandler接口的对象。在MVC应用程序当中,典型的这应该是一个MvcRouteHandler类的实例。MvcRouteHandler类的实例创建一个实现了IHttpHandler接口的MvcHandler对象。然后MvcHandler对象选择最终处理请求的控制器。UrlRouteModule和UrlRouteHandler这两个类是ASP.NET MVC框架的入口点。他们扮演了以下几个功能:
1.选择恰当的控制器
2.获得具体控制器实例
3.调用控制器的
Execute
方法
下表列出了MVC网站项目的执行阶段
阶段 详细说明
接收到应用程序的第一个特请求 在Global.asax文件中,一系列Route对象被添加到RouteTable中
执行路由 UrlRouteModule模块对象选择第一个匹配的路由创建一个RouteData对象,他将被用来创建RequestContext对象
创建MVC请求的处理程序 MvcRouteHandler创建一个MvcHandler实例并把RequestContext实例传递给他
创建控制器 MvcHandler实例通过RequestContext实例找到创建控制器实例的IControllerFactory对象
执行控制器 MvcHandler实例调用控制器的Execute方法
触发功能 对与继承与ControllerBase的那些控制器,跟控制器相关联的ControllerActionInvoker决定了应该调用控制器的哪个功能方法,然后调用那个方法
执行结果 功能方法收到来自用户的输入,准备好恰当的相应数据,然后执行结果返回结果类型。内建 的执行结果类型包括以下几种:ViewResult,RedirectToRouteResult,RedirecteResult,ContentResult,JsonResult,FileResult,EmptyResult
对象从路由表中选择第一个匹配该请求的路由供后继处理使用。如果没有跟请求匹配的路由那么UrlRoutingModule将把请求返回给常规的ASP.NET或者IIS请求处理。从选中的Route对象那里UrlRoutingModule获得跟Route对象相关联的实现了IRouteHandler接口的对象。在MVC应用程序当中,典型的这应该是一个MvcRouteHandler类的实例。MvcRouteHandler类的实例创建一个实现了IHttpHandler接口的MvcHandler对象。然后MvcHandler对象选择最终处理请求的控制器。UrlRouteModule和UrlRouteHandler这两个类是ASP.NET MVC框架的入口点。他们扮演了以下几个功能:
1.选择恰当的控制器
2.获得具体控制器实例
3.调用控制器的
Execute
方法
下表列出了MVC网站项目的执行阶段
阶段 详细说明
接收到应用程序的第一个特请求 在Global.asax文件中,一系列Route对象被添加到RouteTable中
执行路由 UrlRouteModule模块对象选择第一个匹配的路由创建一个RouteData对象,他将被用来创建RequestContext对象
创建MVC请求的处理程序 MvcRouteHandler创建一个MvcHandler实例并把RequestContext实例传递给他
创建控制器 MvcHandler实例通过RequestContext实例找到创建控制器实例的IControllerFactory对象
执行控制器 MvcHandler实例调用控制器的Execute方法
触发功能 对与继承与ControllerBase的那些控制器,跟控制器相关联的ControllerActionInvoker决定了应该调用控制器的哪个功能方法,然后调用那个方法
执行结果 功能方法收到来自用户的输入,准备好恰当的相应数据,然后执行结果返回结果类型。内建 的执行结果类型包括以下几种:ViewResult,RedirectToRouteResult,RedirecteResult,ContentResult,JsonResult,FileResult,EmptyResult
相关文章推荐
- 理解MVC应用程序执行过程
- [ASP.NET MVC2 系列] 理解MVC应用程序的执行过程
- [翻译:ASP.NET MVC 教程]理解MVC应用程序的执行过程
- ASP.NET MVC 教程 - 理解MVC应用程执行过程(C#)
- 了解 MVC 应用程序执行过程
- 理解ASP.NET MVC执行过程
- 2.理解ASP.NET MVC的执行过程
- 请示asp.net mvc应用程序的执行过程
- ASP.NET MVC应用程序执行过程分析
- 了解 MVC 应用程序执行过程
- MVC应用程序的执行过程 - MVC中文说明书(2)
- 理解MYSQL语句执行过程
- 从编译,执行过程理解c#
- Spring MVC framework深入分析之三--执行过程
- wince6.0电源管理之应用程序调用SetSystemPowerState的执行过程
- c语言编译预处理和条件编译执行过程的理解
- 理解性能的奥秘——应用程序中慢,SSMS中快(2)——SQL Server如何编译存储过程
- 通过源码了解ASP.NET MVC 几种Filter的执行过程
- MVC简单执行过程
- iOS个人整理05-应用程序的启动流程--视图控制器ViewController的加载过程--MVC架构