我们知道MVC请求进来,然后路由匹配,然后找到控制器和Action,最后会调用Action方法,但是大家想想控制器是个普通的类,Action是个普通的实例方法,要想调用Action必须先实例化控制器,那么MVC中如何实例化控制器的呢?

1、MVC请求进来会先进入到UrlRoutingHandler里的ProcessRequest

2、然后进入到MVCHandler里的ProcessRequest

3、MVCHandler里的ProcessRequestInit,在这里面实例化控制器

1、string requiredString = this.RequestContext.RouteData.GetRequiredString("controller");路由匹配之后产生的结果集RouteData,得到requiredString字符串,requiredString是个完整类型名称

2、this.ControllerBuilder.GetControllerFactory();得到默认的控制工厂DefaultControllerFactory,然后通过DefaultControllerFactory的CreateController方法利用反射去创建Controller实例

最新文章

  1. MyBatis的mapper
  2. 如何动态在文档中加入<script></script>写入大段js
  3. 摘录ECMAScript官方文档中重要的两段话
  4. [已开源/文章教程]独立开发 一个社交 APP 的源码/架构分享 (已上架)
  5. 三分 --- CSU 1548: Design road
  6. NBUT 1457 Sona(莫队算法+离散化)
  7. linux shell 参数传递
  8. Ambry: LinkedIn’s Scalable Geo-Distributed Object Store
  9. Android 6.0 Permission权限与安全机制
  10. [转]Laravel 4之控制器
  11. 基于CentOS 5.4搭建nginx+php+spawn-fcgi+mysql高性能php平台
  12. Java用jdom.jar解析读取XML文件信息
  13. js03-javascript对象
  14. Viterbi algorithm
  15. 审核流(1)SNF.WorkFlow审核流简介--SNF快速开发平台3.1
  16. ajax提交完表单数据依然跳转的解决办法
  17. 2019.01.22 zoj3583 Simple Path(并查集+枚举)
  18. PAC Manager的重生: Asbru
  19. Fuckey V1.0 Beta版发布!!!
  20. 记开发个人图书收藏清单小程序开发(六)Web开发

热门文章

  1. The absolute uri: [http://java.sun.com/jsp/jstl/core] cannot be resolved in either web.xml or the jar files deployed with this application] with root cause异常处理及解释
  2. 基于xtrabackup实现mysql备份还原
  3. word2vec C源码解析
  4. 【JavaEE】之MyBatis开发DAO
  5. python_排序
  6. 本地Docker Jenkins构建dotnet core web应用到Linux服务器 Docker上
  7. mybatis中因为不理解$与#而出现的bug
  8. iOS13暂时关闭黑暗模式+应用内状态栏无法显示问题解决办法
  9. FF.PyAdmin 接口服务/后台管理微框架 (Flask+LayUI)
  10. 面试阿里被分布式“搞懵”,Redis、MongoDB、memcached没答上来