MVC中的路由

authour: chenboyi
updatetime: 2015-05-02 16:10:04
friendly link:  

 

 

 

 


 

目录

  1,思维导图

  2,MVC处理机制简图(讲解路由解析)

  3,默认路由规则

  4,忽略路由

  5,路由规则参数约束

  6,命名空间约束

  7,利用RouteDegger.dll来查看匹配的路由


 

1,思维导图

 

2,MVC处理机制简图(讲解路由解析):

3,默认路由规则

在项目的App_Start文件夹下的RouteConfig.cs中进行修改

 

 1  //MVC默认的路由规则

 2  routes.MapRoute(

 3 //名字

 4 name: "Default",

 5  //路由规则url ,注意点:controller和action 占位符的名称是固定不变的,但是参数是可以修改的,但是不建议随意更改

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

 7  //路由规则url默认参数设置

 8  defaults: new

 9  {

10  controller = "Home"  //当url中不存在路径的时候,此处默认使用Home控制器替代

11  ,

12  action = "Index"//当url中不存在路径的时候,此处默认使用Index4 action替代

13  ,

14  id = UrlParameter.Optional  //UrlParameter.Optional:表示当前id参数是可选参数(意味着url中可传可不传)

15 //id 的名称一定是可以url规则中 的{id}占位符保持一致,同时在控制器中的action中的参数名也必须与id保持一致

16 

17                 }

18             );

 

 

4,忽略路由:

在项目的App_Start文件夹下的RouteConfig.cs中进行修改

1 public static void RegisterRoutes(RouteCollection routes)

2 {

3             //忽略路由

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

5             //注意.netframework 4.5 + MVC4 自定义一般出程序类不需要配置忽略路由

6 }

 

 

 

5,路由规则参数约束

在项目的App_Start文件夹下的RouteConfig.cs中进行修改

 

1 routes.MapRoute(

2             name: "Default3",

3             url: "itcast/{controller}/{action}/{id}/{name}",

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

5             , constraints: new { id="\\d+",name = "\\w+" }  //约束id只能是字母

6         );

 

 

 

 

6,命名空间约束

在项目的App_Start文件夹下的RouteConfig.cs中进行修改

 

1   routes.MapRoute(

2    name: "Default",

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

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

5   , constraints: new { id = "\\d+" }  //约束id只能是数字

6   , namespaces: new string[] { "MVC路由约束.Controllers" }  //指定匹配当前路由规则的url中的控制器对象创建时去命名空间"MVC路由约束.Controllers"中取查找

7             );

 

7,利用RouteDegger.dll来查看匹配的路由

7.1 ps:关于这个工具的下载链接地址:http://files.cnblogs.com/files/chenboyi081/RouteDebugger.rar

7.2 使用方法:

   7.2.1 将下载下来的rar解压,把RouteDebugger.dll放到你的Libs文件夹下

  7.2.2 在项目中引用RouteDebugger.dll

  7.2.3 在web.config文件的appSettings节点下添加如下代码,即可

  

<add key="RouteDebugger:Enabled" value="true" />


7.3 使用后的效果如下:

 

 

你可能感兴趣的:(mvc)