文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>详解ASP.NET MVC应用程序请求生命周期_.net教程网

详解ASP.NET MVC应用程序请求生命周期_.net教程网

时间:2010-08-30  来源:蔚蓝的大海

当一个ASP.NET MVC应用程序提出请求,为了响应请求,包含一些请求执行流程步骤! 在ASP.NET MVC应用程序Http request

  和Http response 过程中,主要包含8个步骤:

  1)RouteTable(路由表)的创建

  2)UrlRoutingModule 请求拦截

  3)Routing engine 确定route

  4)route handler 创建相关的IHttpHandler实例

  5)IHttpHandler实例确定Controller(控制器)

  6)Controller执行

  7)一个视图引擎创建

  8) 视图呈现

  主要流程图如下:

  

  1)RouteTable的创建

  RouteTable的创建发生在mvc应用程序的启动 或者web应用程序池的重启!通常的asp.net程序,一个页面请求对应磁盘上的一个页面!如(http://localhost/index.aspx

  对应到服务器磁盘上的文件index.aspx)index.aspx实际上是一个类,由IHttpHandler创建实例化。IHttpHandler包含一个

  ProcessRequest方法,负责响应页面输出!

  但是mvc application 是不同的,每一个请求映射到route,route 定义在route table,在应用程序启动时创建!

  RouteTable的在应用程序的具体使用如下


public class MvcApplication : System.Web.HttpApplication   
  {   
  public static void RegisterRoutes(RouteCollection routes)   
  {   
  routes.IgnoreRoute("{resource}.axd/{*pathInfo}");   
 
  routes.MapRoute(   
  "Default",  // Route name   
  "{controller}/{action}/{id}",   // URL with parameters   
  new { controller = "Home", action = "Index", id = "" }  // Parameter defaults   
  );   
  routes.MapRoute(   
 "Account",  // Route name   
 "{controller}/{action}/{id}",   // URL with parameters   
 new { controller = "Account", action = "LogOn", id = "" }  // Parameter defaults   
 );   
    
  }   
 
  protected void Application_Start()   
  {   
  RegisterRoutes(RouteTable.Routes);   
  }   
  } 

  2)UrlRoutingModule 请求拦截

  每一个Http 请求 都被UrlRoutingModule拦截,UrlRoutingModule提供了当前的HttpContext的routing engine(路由引擎)。HttpContext实例包含当前请求的所有数据。UrlRoutingModule控制着routing engine,提供了HttpContext数据到routing engine! UrlRoutingModule实现了IHttpModule接口,在web.config 文件进行了注册!

  UrlRoutingModule 具体的数据结构如下:


public class UrlRoutingModule : IHttpModule   
  {   
   // 主要的 Methods   
   protected virtual void Init(HttpApplication application);   
   private void OnApplicationPostMapRequestHandler(object sender, EventArgs e);   
   private void OnApplicationPostResolveRequestCache(object sender, EventArgs e);   
   public virtual void PostMapRequestHandler(HttpContextBase context);   
   public virtual void PostResolveRequestCache(HttpContextBase context);   
   void IHttpModule.Init(HttpApplication application);   
 
   // Properties   
   public RouteCollection RouteCollection { get; set; }   
 
   }   
UrlRoutingModule 在WebConfig的注册   
   <httpModules>  
<add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule,  
System.Web.Routing, Version=3.5.0.0,  
 Culture=neutral,PublicKeyToken=31BF3856AD364E35"/>  
   </httpModules> 

 

  3)Routing engine 确定route

  routing engine基于当前HttpContext确定Route的处理。routing engine 指出route table里面匹配的route ,并在IRouteHandler实例创建route处理!

  4)route handler 创建相关的IHttpHandler实例在route table里,每一个route 都与一个IHttpHandler对应。IHttpHandler基于当前的HttpContext数据负责创建一个Controller(控制器)!IHttpHandler是由当前活动的IRouteHandler的GetHttpHandler所创建!

  具体的细节如下

  public interface IRouteHandler { // Methods IHttpHandler GetHttpHandler(RequestContext requestContext); }

  5)IHttpHandler实例确定Controller(控制器)

  在MVC应用程序中,MvcHandler实现了IHttpHandler,Controller实例,是基于所输入的HttpContext 和Url参数与route 对应的,ControllerFactory 创建一个controller,ControllerContext包含上下文数据,传入到controller的Excute方法,触发controller的逻辑处理!

  MvcHandler主要有一个ControllerBuilder _controllerBuilder字段;

  具体细节如下


public interface IRouteHandler   
{   
// Methods   
IHttpHandler GetHttpHandler(RequestContext requestContext);   

  通过实现IControllerFactory 工厂 创建一个Controller

  6)Controller执行

  所有的controller 逻辑调用执行时,actions请求被执行!当controller的逻辑被执行时,会返回一个ActionResult。一个ActionResult实例,会触发呈现一个View(视图),当触发发生时,一个视图引擎被创建,进行进一步的处理

  7)一个视图引擎创建

  视图引擎实例会创建一个IView接口实例,返回一个ViewEngineResult实例,

  8) 视图呈现

  IView实例编译请求视图,提供Render方法调用的数据!

    
remove intel driverskensington slimblade trackball reviewconnect magic jackcomputer jack symbolsusb 2.0 pcidisplaylink dual monitor adapterunderground electrical wirenetwork cable cat5kensington international plug adapterbuy ps3 controllerbest cheap mousedell monitor 17jewelry lyricsps3 hdd upgrade guidesams club hdmi cableshome theater magazine reviews1505 wireless n pci cardsmall computer cartpilote carte son herculedevice manager pci simple communication controllersandisk micro sdhc readerconexant systems pci soft modem driveralpine speakers reviewrg58 vs rg6integrated broadcom netlink gigabit ethernet controllertyco power connectors59 pin video card2006 isuzu npr box truckis my tv 3d compatiblepci ethernet controller driversexternal notebook video cardsnetgear pcmcia mobile adapterrussound whole house audioconnect monitor cpuide to sata adapter cableusb to usb bridge 2.0 driver pl2501debit credit card reader softwarelenovo smart card reader drivercannot connect wireless networkt mobile messaging textmemory upgrade advisormini usb 2802.11 b wireless routeradaptateur vga male femellehp bt500 bluetooth usb 2.0 wireless adapternewegg amazonsandisk microsofto2 mobilecorsair 650w atx cpu power supplylaptop display cablexbox 360 frysgamefaqs wikihdmi cable xbox 360 laptopsnap on tools stock pricenetwork patch cabletrailer hitch light convertertin speaker wireinstalling graphics card pchilti cf 128embarq serviceusb port donglebest game controllercisco pci wireless lan adapter driverd link 625 reviewcable one internet servicesengine diagnostic toolformattare memory card n95dell e6500 smart card readerinstalling wireless card pcvga component video cablesusb port expansiondell 1505 wireless n pcie netzwerkkarteamiga video pinoutdell laptop smart cardusb laptop batterymicrosoft picture manager downloadport royale 2 game downloadpower adaptor tipscompact flash vs iihp optical mousebelkin hdmi to dvi cable reviewsony ericsson c902 driver downloadwireless cable modem sbg900ethernet cable lengthduracell 8gb usb driveusb ipod data cablebelkin 4 port hubesata port computerhome theater hook up guidecomedy central launches comedy central hd 1cd downloaddigital antenna best buyxp simple file sharing registryrocketfish bluetoothcomcast free cablenvidia geforce biosasus 3450 hdmi audiod link router switchbirthday card servicesradio shack bluetooth Replica lv Hangbags Replica Hangbags Hangbags replica handbags replica handbags replica handbags replica handbags usb cable usb cable usb cable usb cable
相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载