深入:ASP.NET MVC管道


ASP.NET mvcnovember第二十2007

如果我们听到的消息是真的那么新的ASP.NET MVC框架将是最可定制和可扩展的Web开发平台,微软

如果你想充分利用这个优势或者如果你只是想明白什么你会想打开盖,检查发动机

管道

免责声明:此信息是基于pre-ctp1样本代码,所以它可能是过时的只是简单的错误会更新这个职位当公众CTP是运


0。应用程序初始化

在应用程序启动时像任何ASP.NET应用程序它运行的全球application_start() ASAX方法

在该方法中你可以添加对象到staticroutetable路线路线收藏它的类型是RouteCollection这些将被检查以后,每个接收请求每个路由对象定义一个URL模式将匹配和控制器被用来在这种情况下或者,您可以指定一个动作控制器和一个customiroutehandler如果你不想使用默认的(这是mvcroutehandler

如果你实现一个自定义IControllerFactory例如如果你使用控制容器一个第三方的温莎城堡你可以把这个作为主动控制器工厂指派它system.web.mvc.controllerfactory.instance财产

1。路由

概述:路由是符合ihttphandlers传入请求URL模式独立组件mvchandler本身一个IHttpHandler作为一种替代其他ihttphandlers配置路由

引用system.web.mvc.mvchandler andsystem.web.mvc.urlroutingmodule在Web.config处理所有传入的请求mvchandler责任相结合

首先,mvchandler调用路线。application_start()添加getroutedata()比赛路线的对象列表的请求适当的路由选择和制备aroutedata对象本文引用必须适当的iroutehandlerIController

其次,iroutehandlergethttphandler()被调用时,返回一个IHttpHandlerwhoseprocessrequest()方法最终调用默认bymvcroutehandler IHttpHandler返回再次mvchandler执行以下步骤2-4

scottgu提供此路由过程的另一个观点

2。实例化和执行控制器

概述:主动IControllerFactory供应IController实例

mvchandlerprocessrequest()方法callscontrollerfactory实例。createcontroller()通过上下文信息,包括获得的RouteData对象读取先前控制器类型

主动IControllerFactory负责实例化并返回一个适当的IController通常这将是控制器基类的子类

execute() IController方法被称为如果这是控制器的一个子类步骤3和4以下进行

3。定位和调用动作控制器

概述:控制器调用相应的操作方法经过进一步的加工renderview()

控制器。execute()方法使用routedata和其他上下文信息,选择适当的操作方法这种方法必须有一个controlleraction ]属性可以选择也映射传入的请求QueryString参数形成ihttprequest上下文对象到该动作方法的参数列表

控制器调用自己的invokeaction()方法通过详细的选择的操作方法其中可以预见的是,调用动作方法这是您的代码运行

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值