2.理解ASP.NET MVC的执行过程

本文详细介绍了ASP.NET MVC框架的执行过程,包括如何通过UrlRoutingModule解析请求、选择Route对象及创建控制器等关键步骤。此外还阐述了MVC在不同版本IIS上的配置差异。

个人网站:www.itiask.com

英语好的朋友直接看官方教程:Understanding the ASP.NET MVC Execution Process

理解ASP.NET MVC的执行过程

本篇文章将帮助理解ASP.NET MVC的执行过程,学习怎么ASP.NET MVC 框架怎么一步步处理浏览器响应的。
当您请求一个ASP.NET MVC 的Web应用程序时,首先传递一个UrlRoutingModule对象,它是一个Http模块,由它解析请求并根据路由选择执行。UrlRoutingModule对象选择第一个匹配当前请求的route对象(route对象是继承并实现RouteBase的类,是一个Route类的实例。)如果没有和它匹配成功,UrlRoutingModule一般什么都不做,让请求继续回到ASP.NET或IIS中去。
Route选择对象后,获得与UrlRoutingModule相关的IRoteHandler对象,在一个MVC应用程序中常用来当做是MvcRouteHandler的一个实例,IRouteHandler创建一个IHttpHandler对象并将其传递到一个IHttpContext对象中去,在默认的情况下,这个Mvc的IHttpHandler实例就是MvcHandler对象,MvcHandler对象决定由哪个最终的Controller(控制器)来处理。
注意: 在IIS7.0下运行ASP.NET MVC Web应用程序时,MVC不要求修改文件扩展名,而在IIS6.0下需要为处理程序映射扩展名为.mvc的ASP.NET ISAPI DLL
ASP.NET MVC 框架的切入点是模块和处理程序,他们执行下面的操作:

  • 在MVC Web应用程序中选择控制器
  • 获取控制器的实例
  • 调用控制器的Execute方法
下面是ASP.NET MVC执行周期中所经历的阶段:
阶段
详细
接收的第一个请求
在Global.asax文件中,在RouteTable中添加Route对象。
执行路由
UrlRoutingModule模块先从RouteTable集合中依次匹配Route,创建RouteData对象,然后创建RequestContext(IHttpContext)对象。
创建mvc请求处理程序
MvcRouteHandler对象创建一个MvcHandler类的实例然后传递RequestContext对象实例。
创建控制器
MvcHandler实例调用了Execute方法
调用action
一般的Controller(控制器)都继承自Controller基类,所以,ContrllerActionInvoker对象决定调用哪个控制器的action方法并调用。
执行结果

一般的,action方法可以接收用户输入并获取结果,然后返回一个结果类型来返回结果:

ViewResult(呈现一个视图)

RedirectToRouteResultRedirectResultContentResultJsonResult

转载于:https://www.cnblogs.com/circleLee/archive/2012/05/24/2516094.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值