您的位置:首页 > 其它

理解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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: