Routing与ASP.NET MVC生命周期

一、Routing  

  ASP.NET MVC的“网址路径”和“文档路径”的对应关系是通过“网址路由(Routing)”来定义的,我们可以从项目内的App_Start\RouteConfig.cs文档可以看到一个RegisterRoutes方法:

  public static void RegisterRoutes(RouteCollection routes)

  {

    route.IgnoreRoute("{resource}.axd/{*pathInfo}");

    route.MapRoute(

        name:"Default",

        url:"{controller}/{action}/{id}",

        defaults:new{controller="Home",action="Index",id=UrlParameter.Optional}

            );

  }

  RegisterRoutes方法中:

    IgnoreRoute为设置.axd等格式的网址路径不通过ASP.NET MVC运行。

    MapRoute方法是定义ASP.NET MVC网址路由最主要的方式:name——路由名称;url——设置网址路径如何对应到控制器、动作与路由值;defaults——设置{controller}、{action}、{id}这3个路由参数的默认值。

二、ASP.NET MVC生命周期

  ASP.NET MVC生命周期三大过程为:

    1.网址路由比对;

    默认情况下,如果请求的网址可以对应到相对于网站根目录下得实体文档,则不会通过ASP.NET MVC进行处理,而是会自动略过所有网址路由比对,直接交给IIS或者ASP.NET。如果要改变这种行为,可以在Global.asax的Application_Start()事件最前面将RouteTable.Routes.RouteExistingFiles设置为true,这样UrlRoutingModule模块就不会先判断是否存在实体文档,而是以RegisterRoutes定义的网址路由规则进行比对,如果比对成功,就会进入MVC运行周期,比对失败,就会将运行权利交还给IIS。

    2.运行Controller与Action;

    3.运行View并回传结果。

posted on 2015-06-10 21:00  JessicaYe  阅读(150)  评论(0编辑  收藏  举报