码迷,mamicode.com
首页 > Web开发 > 详细

ASP.NET-Router配置中MapRoute的参数

时间:2016-03-24 10:00:16      阅读:204      评论:0      收藏:0      [点我收藏+]

标签:

App_Start文件夹中的RouteConfig
  1. MapRoute( string name, string url);
  2. MapRoute( string name, string url, object defaults);
  3. MapRoute( string name, string url, string[] namespaces);
  4. MapRoute( string name, string url, object defaults, object constraints); MapRoute( string name, string url, object defaults, string[] namespaces);
  5. MapRoute( string name, string url, object defaults, object constraints, string[] namespaces);

①name参数:
规则名称, 可以随意起名。不可以重名,否则会发生错误: “路由集合中已经存在名为“Default”的路由。路由名必须是唯一的”。
②url参数:
url获取数据的规则,这里不是正则表达式,将要识别的参数括起来即可,比如: {controller}/{action}
最少只需要传递name和url参数就可以建立一条Routing(路由)规则,比如实例中的规则完全可以改为:
routes.MapRoute( “Default”, “{controller}/{action}”);
③defaults参数:
url参数的默认值:如果一个url只有controller: localhost/home/,而且我们只建立了一条url获取数据规则: {controller}/{action},那么这时就会为action参数设置defaults参数中规定的默认值。由于defaults参数是Object类型,所以可以传递一个匿名类型来初始化默认值:new { controller = “Home”, action = “Index” }。
在ASP.Net MVC网站默认实例中使用的是三个参数的MapRoute方法:
④constraints参数:
用来限定每个参数的规则或Http请求的类型。constraints属性是一个RouteValueDictionary对象,也就是一个字典表,但是这个字典表的值可以有两种类型:
一是:用于定义正则表达式的字符串(正则表达式不区分大小写)。通过使用正则表达式可以规定参数格式,比如controller参数只能为4位数字:new { controller = @”\d{4}”}
  1. routes.MapRoute(
  2. name: "Default2",
  3. url: "{controller}-{action}-{id}",
  4. defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional },
  5. constraints: new {
  6. controller = @"\d{4}",
  7. httpMethod = new HttpMethodConstraint("GET") }
  8. );

具体的一个实例
  1. // 酒店列表页匹配
  2. routes.MapRoute(
  3. "酒店列表页",
  4. "hotels/{action}-{city}-{price}-{star}",
  5. new { controller = "Hotel", action = "list", city = "beijing", price = "-1,-1", star = "-1" },
  6. new { city = @"[a-zA-Z]*", price = @"(\d)+\,(\d)+", star = "[-1-5]" }
  7. );
  8. // 酒店频道所有匹配
  9. routes.MapRoute(
  10. "酒店首页",
  11. "hotels/{*iiii}",
  12. new { controller = "Hotel", action = "default", hotelid = "" }
  13. );
  14. // 网站首页默认匹配
  15. routes.MapRoute(
  16. "网站首页",
  17. "{*values}",
  18. new { controller = "Home", action = "index" }
  19. );











ASP.NET-Router配置中MapRoute的参数

标签:

原文地址:http://www.cnblogs.com/weloveshare/p/5314055.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!