1..net mvc的原理概述

2018-06-22 06:15:47来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

请求过来,根据ip和端口,由iis服务器进行接收,如果是静态文件则直接返回文件内容,如果无法解析,则根据映射规则找到对应请求后缀

的ASPNET_ISAPI.dll处理程序集,交由其进行处理。

1.此时会生成IsapRuntime,其创建了WorkRequest对象,

2.接下来实例化HttpRunTime,由其生成HttpContext上下文对象,此时就初始化了Request,Response,Session,Application,等内置对象,

3.然后创建了HttpApplicationFactory工厂对象,其在第一次访问时调用了Global文件中的Application_Start方法,

生成HttpApplication对象,读取系统的配置文件,其中就包括我们的路由配置和约束,并创建HttpModel对象,调用Init方法,并注册这些方法到管道中,

4.由HttpApplication对象调用ProcessRequest,里面负责执行了管道时间

4.1 第一个是事件 就是BeginRequest方法,然后重点来到第7个时间,创建MVCHandler对象 ,

4.1.1将HttpContext存入其中,并读取路由表中的路由规则生成RouteData对象,和HttpContext一并存入从而创建RequestContext,再RequestContext对象传入RoudlerHandler.GetHttpHandler从而获取MVCHandler,并调用context.RemapHandler将mvchandler存入httpcontext中 

4.2第8个事件则检查HttpContext中RemapHandler是否为空,如果不为空则跳过此事件,这也是和aspx最重要的不同之一,在aspx中这里是要打造页面控件树的. 而.net mvc这里是略过的

4.3来到第11至第12个事件之间会根据控制器名获取控制器工厂来创建对应的控制器对象,传入RequestContext调用控制器父类的ControllerBase的Execute方法,里面就将RequestContext设置给ControllerContext,执行ExecuteCore方法, 其中就根据请求的方法名找到并调用对应的Action方法,也就是我们写的业务,最后返回View,调用的是ActionResult.Execute 方法,,也就是父类的ViewResultBase.ExecuteResult,找到对应的视图引擎, 获取ViewEngineResult的View对象,获取Response的TextWriter对象和ViewContext对象 来调用引擎的Render方法,生成html代码并writer出去.

 

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:MVC页面移除HTTP Header中服务器信息

下一篇:Asp.net MVC4高级编程学习笔记-视图学习第一课编写Razor视图2017