根据讲师所讲总结了一下(可能存在些描述错误)

-------------mvc进入asp.net管道原理: (在执行httpapplication管道之前mvc和asp.net是相同的,不同之处在于管道第七个事件对http请求进行了重定向,交给了现有的mvchandler实例,而不是asp.net模型中自己创建的一个httpHander;)

1.当网站启动执行application_start方法,注册路由规则;先创建了一个mvcRouteHandler路由处理器实例(它获取最终处理http

请求的httpHandler处理器)给route路由实例的Routehandler属性中去了;而这个属性又放到了RouteData路由数据对象的

RouteHandler属性中去了;

2.当请求开始到asp.net httpapplication管道中的第七个事件时将http请求重定向为一个现有的mvchttpHandler处理器实例;在 第七个事件和第八个事件之间,会判断http请求是否指定了处理器,如果指定了就不会创建。这样httpcontext就被mvc处理过滤 截获了,而不会在走asp.net的handler。

3.在第七个事件,会将所有的在.netframework注册的httpModule初始化,调用每一个init方法。当然在.net4.0在配置文件中注册

了urlroutingModule。当执行它的init方法时,就会行UrlRouteModule事件响应方法,而在这个方法内部便实现了http请求的重定

向,而处理器则是mvchandler;首先在事件响应方法中,会遍历注册的路由并将请求url进行匹配,一旦匹配上这时就会获取路由规

则的路由数据对象RouteData;(在1中,可以知道最终的httphandler便在这个数据对象中)从数据对象的routehandler属性获取

mvcroutehandler的实例,在从这个实例的getHttpHandler方法获取最终的mvchandler即最终的httphandler;

4.在mvchandler中:内部创建控制器工厂,并获得控制器实例,执行action,返回视图进行渲染,再response流给客户端;

5.在11和12个事件之间执行mvchandler的pr方法。在pr方法内根据httcontext创建控制器工厂 实例和并由工厂创建控制器实例;之后调用控制器的execute方法(内部就是调用了invokeaction);执行完action后 获取actionresult,并调用它的executeResult方法;找到对应的视图引擎,并调用引擎的render渲染方法;

转载于:https://www.cnblogs.com/guozefeng/p/3450448.html

asp.net mvc请求响应模型原理回顾相关推荐

  1. ASP.NET MVC 4 (九) 模型绑定

    模型绑定指的是MVC从浏览器发送的HTTP请求中为我们创建.NET对象,在HTTP请求和C#间起着桥梁的作用.模型绑定的一个最简单的例子是带参数的控制器action方法,比如我们注册这样的路径映射: ...

  2. ASP.NET MVC 4 (十) 模型验证

    模型验证是在模型绑定时检查从HTTP请求接收的数据是否合规以保证数据的有效性,在收到无效数据时给出提示帮助用户纠正错误的数据. 显式模型验证 验证数据最直接的方式就是在action方法中对接收的数据验 ...

  3. [翻译:ASP.NET MVC 教程]理解模型、视图和控制器

    本篇教程为你提供了ASP.NET MVC的模型.视图和控制器的高级概述.换句话说,即本文向你解释了在ASP.NET MVC中"M"."V"和"C&qu ...

  4. ASP.NET MVC中的模型装配 封装方法 非常好用

    下面说一下 我们知道在asp.net mvc中 视图可以绑定一个实体模型 然后我们三层架构中也有一个model模型 但是这两个很多时候却是不一样的对象来的 就拿微软的官方mvc例子来说明 微软的视图实 ...

  5. 客户服务器模型请求响应,计算机网络原理-第8章.ppt

    文档介绍: 计算机网络原理working第8章应用层辜落僻画崇喜菲斋膛盼殊阿广越宵渝霸愚郡响棵侣库吊器斋凛挥凰抿二浆计算机网络原理-第8章计算机网络原理-第8章2001-03-25客户/服务器模型(1 ...

  6. ASP.NET MVC实践系列9-filter原理与实践

    filter实际上是一个特性(attribute),它提供了一种向controller 或 action中添加某些任务的方法,当controller 或 action被调用时,会触发filter中定义 ...

  7. ZEROMQ 第 4 章 - 可靠地请求响应模型

    第三章中我们使用实例介绍了高级请求-应答模式,本章我们会讲述请求-应答模式的可靠性问题,并使用ZMQ提供的套接字类型组建起可靠的请求-应答消息系统. 本章将介绍的内容有: 客户端请求-应答 最近最少使 ...

  8. ASP.NET MVC框架(第一部分)

    [原文地址]ASP.NET MVC Framework (Part 1) [原文发表日期] Tuesday, November 13, 2007 3:45 AM 两个星期前, 我在博客里讨论了ASP. ...

  9. ASP.NET MVC 框架

    ASP.NET MVC 框架 [原文地址]ASP.NET MVC Framework [原文发表日期] Sunday, October 14, 2007 10:41 PM 过去的几年里,很多人要求AS ...

最新文章

  1. Radware负载均衡项目配置实战解析之四-VRRP双机配置与同步
  2. 比较分析 Spring AOP 和 AspectJ 之间的差别
  3. flask创建mysql表_请教一下,flask-sqlalchemy 怎么动态创建数据表?
  4. 为什么做软件类项目,会出现人多,事少,工作量大的情况?
  5. 【sprinb-boot】改造成 spring-cloud 项目
  6. JavaScript写贪吃蛇游戏,代码思路都有,想学的自己看
  7. android让文件按顺序列表,Java/Android 获取文件夹的文件列表(file.listFiles())并按名称排序,中文优先...
  8. 前端实现连连看小游戏(1)
  9. plsql developer无监听程序_微信小程序支持分享到朋友圈啦!技术解读跟我来
  10. 阿里技术专家告诉你,如何画出优秀的架构图?
  11. Java中的Unsafe
  12. 微信小程序入门三:轮播图
  13. Win10 64位系统下PCL + Visual Studio + cmake + (Qt) 安装调试
  14. Linux系统中的用户管理(一)
  15. dev GridControl Column 背景色
  16. 连接不上sql server服务器的解决方案
  17. 问题三:类的头文件和实现文件分别写什么(用向量表示RGB输出“第一张图片”)
  18. Eclipse设置护眼背景
  19. 活动目录权限委派|父域子域管理
  20. SC-GlowTTS论文阅读

热门文章

  1. 一个比较简单、非常简单的计算器
  2. 家园签到:无忧币天天送,连续领礼更多!【家园帮助】
  3. Person Re-Identification by Multi-Channel Parts-Based CNN with Improved Triplet Loss Function
  4. 开源网络爬虫WebCollector的demo
  5. Leetcode 313. 超级丑数 解题思路及C++实现
  6. Apache 虚拟主机 VirtualHost 配置
  7. Apex Integration Overview
  8. Shiro实现认证_ini
  9. 关于Icon,Image,ImageIcon的简单的对比参考
  10. RabbitMQ配置Mqtt协议