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:关于这个工具的下载链接地址:https://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 使用后的效果如下:

 

 

posted on 2015-05-02 16:39  两宝程序cboii  阅读(261)  评论(0编辑  收藏  举报

导航