总结:HttpModule 和HttpHandler是Asp.net管道的两个重要组件。请求最终处理通过HttpHandler完成。MVC就是通过名为MvcHandler自定义HttpHandler现实对Controller的激活和Action的执行。但对c 和A名称的解析是通过Asp.net的URL路由系统完成,而整个URL路由系统是通过名为UrlRoutingModule的自定义HttpModule实现的。

第一 Asp.net路由系统 有一个针对整个Web应用的全局路由表,表中每一个路由对象 具有一个可以包含变量的URL模版。Asp.net 路由系统 即作为自定义 HttpModule的UrlRoutingModule通过注册HttpApplication的PostResolveRequestCache事件进行拦截,并利用路由表与请求的URL进行匹配得到相应路由数据,交给HttpHandler动态映射来实现(从可扩展性的角度来讲,通过三种方式显现我们需要的路由方式,详见p80)。

第二 MVC对Asp.net路由系统扩展。Asp.net路由系统通过注册URL模版与物理文件之间映射进行实现了请求地址与文件路径分离,但对于MVC请求目标不是物理文件,而是controller中的Action,处于自身考虑,mvc对asp.net路由系统进行扩展。

1.路由映射 根据aps.net RouteCollection类型自定义了System.Web.Mvc.RouteCollectionExtensions,包含两个方法IgnoreRoute用于注册不需要URL模版;MapRoute用于基于URL模版的路由注册(p61)

2.基于Area的路由映射,根据Area相当于划分不同小系统,每个Area里面包含独立的 c v m和配置文件。Area路由映射通过System.Web.Mvc.AreaRegistration进行注册(P67)

第三 MVC框架扩展--URL研发人员自定义扩展,即:从可扩展性的角度来讲,通过三种方式显现我们需要的路由方式,详见p80

最新文章

  1. Python练习,网络小爬虫(初级)
  2. Kernel启动时 驱动是如何加载的module_init,加载的次序如何;略见本文
  3. FreeSWITCH的传真发送
  4. JAVA break终止循环,与continue进入下一次循环
  5. 详解Ossim 4.3控制台
  6. Android消息推送完美方案
  7. Redis缓存异常的容错实现方法( .net)
  8. mysql级联删除更新
  9. CSS 神器 compass
  10. thinkphp中field的用法
  11. wcf契约版本处理与异常处理(随记)
  12. unity传送门类似效果实现
  13. java基础(二章)
  14. 最近做的floyd的题目
  15. 【一天一道LeetCode】#31. Next Permutation
  16. Git命令行管理代码、安装及使用
  17. 廖雪峰Java4反射与泛型-3范型-6super通配符
  18. core 文件查看
  19. Ajax 的概念及过程?Ajax 的交互模型?同步和异步的区别?如何解决跨域问题?
  20. Hbase(五) hbase内部原理

热门文章

  1. eclipse常用插件介绍
  2. GCT之数学公式(微积分)
  3. perforce 学习资源
  4. 基于.NET平台常用的框架
  5. CakePHP程序员必须知道的21条技巧
  6. symfony 事务提交
  7. position absolute定位之所属的containing box
  8. Java实现策略模式的简单应用
  9. actor binary tree lab4
  10. VMWARE workstation 9 收缩虚拟硬盘