.Net MVC中的路由_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > .Net MVC中的路由

.Net MVC中的路由

 2014/7/17 18:09:29  忙碌的虫子  程序员俱乐部  我要评论(0)
  • 摘要:MVC中的URL也就是路由,不用通过路径访问实际的物理文件而达到向用户展示界面。URL的路由功能一方面正向映射到Controller和Action,根据用户输入的URL触发相应的控制器和对应方法,另一方面则反向映射并构造出URL,根据控制器和行为构造出URL以供程序调用。系统首次启动将会加载Global.asax文件的Application_Start方法并去执行RegisterRoutes()构造器protectedvoidApplication_Start()
  • 标签:.net MVC net

MVC中的URL也就是路由,不用通过路径访问实际的物理文件而达到向用户展示界面。

URL的路由功能 一方面正向 映射到Controller和Action,根据用户输入的URL触发相应的控制器和对应方法,另一方面则反向映射并构造出URL,根据控制器和行为构造出URL以供程序调用。

系统首次启动将会加载Global.asax文件的Application_Start方法并去执行RegisterRoutes()构造器

 protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();

            WebApiConfig.Register(GlobalConfiguration.Configuration);
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            
             
           
            BundleConfig.RegisterBundles(BundleTable.Bundles);
            AuthConfig.RegisterAuth();
           
        }

 

 public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
            routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{id}",
                defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
            );
        }

RegisterRoutes()方法创建了默认的路由表且包含了一个默认路由home/index,route.MapRoute()方法根据设置的属性自动完成创建Route的实例。并命名为"Default",访问格式为"{controller}/{action}/{id}"并提供了一个默认的访问路由路径,"home/inde"。将Home控制器指向url中的Controller,行为Index指向action并提供了一个默认的ID参数。之所以把路由的添加放在了Global.asax文件中,是为了确保在程序启用时,将设置的路由填充到默认的路由表中。

路由表的设置格式

  有效的路由定义 举例 {Controller}/{action}/{id} /product/show/beverages {table}/Details.aspx /product/Details.aspx blog/{action}/{entry}    

 /blog/show/123

{reporttype}/{year}/{month}/{day} /sales/2008/1/5

 

 

 

 

当处理来自页面来自/product/show的请求时,MVC框架把product赋值给了参数Controller  把Show赋值给了参数action,并把null赋值给了参数ID。

MVC之所以能完成上述一系列操作,是因为RouteCollection构造器调用了一些的接口去不断的反射和映射传入和输出的Route。详情可查看RouteCollection内置属性。这里不再做阐述。

  • 相关文章
发表评论
用户名: 匿名