Asp.net MVC流程简述_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > Asp.net MVC流程简述

Asp.net MVC流程简述

 2015/3/26 18:10:39  JasonShenW  程序员俱乐部  我要评论(0)
  • 摘要:先上个图步骤一IIS当请求到达我们的服务器时,在asp.net取得控制之前,windows操作系统的核心组件HTTP.SYS一直在监听请求端口,接下来asp.net会通知所有注册的httpModule。有一个httpModule是默认注册了的。那就是UrlRoutingModule,也就进入了路由模块.核心路由接管控制IIS上有两种管道模式ISAPI模式(就是常说的经典模式)ISAPI模式通常和webform联系的比较多,因为他更多的是处理带后缀扩展名如.aspx.ashx等的请求
  • 标签:.net ASP.NET MVC 流程 net
先上个图 步骤一 IIS   当请求到达我们的服务器时,在asp.net取得控制之前,windows操作系统的核心组件 HTTP.SYS一直在监听请求端口,  接下来asp.net会通知所有注册的httpModule。 有一个httpModule是默认注册了的。那就是UrlRoutingModule,也就进入了路由模块.核心路由接管控制 IIS上有两种管道模式 ISAPI模式(就是常说的经典模式) ISAPI模式通常和webform联系的比较多,因为他更多的是处理带 后缀扩展名 如  .aspx  .ashx等 的请求(当然也有其他方法来处理不带扩展名的请求 wildmap)   集成模式 集成模式只在iis7支持。主要处理不带扩展名的请求   步骤二   CoreRouting    当核心路由系统接管控制之后,会把请求封装成 RequestContext这样一个数据结构。这个数据结构中包含了几乎所有的请求信息,以便后面的组件可以任意的去使用它。mvc框架就是使用requestContext中的信息,将控制权转移给对应的controller对象,并提出其中的action参数。   比如说我们的请求为 //Home/SayHi 那么封装成RequestContext对象传递给MVC之后 就提取出 控制器名称 HomeController 以及要调用这个控制器中的SayHi()方法 。(接下来的步骤就是要能创建这个我们自定义的控制器对象了)   步骤三    controllers 和actions   从上面的流程图可以知道, mvcRouteHandler从核心路由模块过渡到mvc框架之后,就要生产对应的controller对象类处理了。 这些对象 你可以采用 不标准的方法通过直接实现Icontroller接口来创建 ,也可以通过controllerFactory来实现。当然这个控制器工厂可以是你自定义的实现了IcontrollerFactory接口的自定义工厂(或者是默认工厂的子类),也可以是mvc框架自带的DefaultControllerFactory来创建。 很显然默认会采用后者。(前者创建自定义工厂肯定也会有用处,因为它可以直接改变控制器的模子,如果你想造出一批特殊功能的控制器,就会相当有用了)   步骤四   controllers内部的这些action并不是直接自己invoke的 而是通过一个IActionInvoker来触发执行,然后返回actionResult给ViewEngine去解析。同理,这个IActionInvoker我们也可以自行实现。
发表评论
用户名: 匿名