MVC MVC 路由详解

在项目中我们引用了System.Web.Routing;   Routing的作用:

确定Controller

确定Action

确定其他参数

根据识别出来的数据, 将请求传递给Controller和Action.

 

Global.asax中

 

在App_Start目录中的RouteConfig.cs文件

注册一条路由规则

name 参数:

   规则名称, 可以随意起名.不可以重名,否则会发生错误,路由集合中已经存在名为 “Default” 的路由。路由名必须是唯一的。 

url 参数:

 url获取数据的规则, 这里不是正则表达式, 将要识别的参数括起来即可, 比如: {controller}/{action}

defaults 参数:

 url参数的默认值. 我们只建立了一条url获取数据规则: {controller}/{action}  那么这时就会为action参数设置defaults参数中规定的默认值. new { controller = "Home", action = "Index" }

 

多条路由规则

 

 

RouteDebug.dll

RouteDebug.dll调试类库放入packages包下,packages文件夹下包含项目用到的所有第三方库。 然后添加引用RouteDebug.dll到项目中。

在Global.asax.cs注册路由之后添加代码:

RouteDebug.RouteDebugger.RewriteRoutesForTesting(RouteTable.Routes);   重写了路由调试的地址,将已经注册了的路由规则进行测试。

 

例如:

  //从繁到简的写法,参数多的写前面/难匹配的写前面   多个路由设计

          //  routes.MapRoute(
          //name: "FF",
          //url: "{controller}-{action}-{id}-{name}",
          //defaults: new { controller = "Home", action = "Index" }
          //);

          //  routes.MapRoute(
          //  name: "DD",
          //  url: "{controller}-{action}-{id}",
          //  defaults: new { controller = "Home", action = "Index"}
          //  );

          //  routes.MapRoute(
          //  name: "SS",
          //  url: "{controller}-{action}",
          //  defaults: new { controller = "Home", action = "Index"}
          //  );          

            routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{id}",
                defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
            );

启用测试路由,不管你打开那个Action都会跳到它的测试页面去 

  RouteConfig.RegisterRoutes(RouteTable.Routes); //注册路由
            BundleConfig.RegisterBundles(BundleTable.Bundles);
            //RouteDebugger.RewriteRoutesForTesting(RouteTable.Routes); //测试路由

 

转载于:https://www.cnblogs.com/Sea1ee/p/5978561.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值