• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
Lipu falls in .Net
C#, .Net, Nhibernate, Lecene/Solr, Domain Driven Design, and more...
博客园    首页    新随笔    联系   管理    订阅  订阅

庖丁解ASP.NET MVC内部运行流程

  跟大家分享两张ASP.MVC的内部运行流程图,作者都是Steve Sanderson,上面这张是07年MVC还未正式发布之前做成的流程图,虽然较老但是放到今天大部分仍然基本适用(注意:图中有些部分已经过期,但是因为比较详细全面,也贴上来了)。下面那张是09年的,贴上来的理由是图中详细的表出MVC框架里哪些部分是可以被拓展(extend)的, 比如说你可以用Cusotom route handler, Custom Handler 等等。

 

  基本上讲,一个MVC项目启动时,包括下面5个步骤:

 

  1. 启动:一个MVC的项目启动的时候,首先从Global.asax.cs里面的Application_Start()开始。在Application_Start()里面定义routes, IoC container, ModelBinder, 等等需要在启动时配置好的部分;

 

  2. 路径(routes):MvcHandler处理所有的请求 e.g. http://example.com/home/index,在这个环节的最后一步IHttpHandler的ProcessRequest方法被调用;

 

  3. 生成controller: 在调用ProcessRequest方式时,DefaultControllerFactory按照进来的请求生成controller对象,e.g. HomeController. 之后controller对象调用Execute()方法;

 

  4. 找到并调用controller action:controller在调用Execute()方法时,依靠ControllerActionInvoker找到相应的action,并调用该action, e.g. 调用HomeController里面的index()方法;

 

  5. 生成界面(render view): 最后controller返回ActionResult,由View Engine生成界面;

 

 

Creative Commons License
Lipu李璞的个人博客 由 作者 在 署名2.5 中国大陆许可协议下发布. 欢迎转载,演绎或用于商业目的,但是必须保留本文的署名李璞(包含链接),如您有任何疑问或者授权方面的协商,请给我留言
posted @ 2010-11-19 07:09  lipu_paul  阅读(3452)  评论(11)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3