首页新闻找找看学习计划

mvc 路由规则配置问题

0
悬赏园豆:10 [待解决问题]

大侠们好,麻烦帮忙解说下,mvc路由规则配置的问题,就是我想实现访问的地址栏中不要带有控制器的名称 直接就是action的名字  比如http://localhost:1681/index  如果所有的action都在一个控制器里我知道怎么实现这种效果,但现在是有多个控制器,路由规则改如何配置?

例如两个控制器  Home  、Account分别对应的action有index和login

如果实现这样访问的url     http://localhost:1681/index

            http://localhost:1681/login

阿连的主页 阿连 | 初学一级 | 园豆:136
提问于:2016-06-12 17:14
< >
分享
所有回答(3)
0

我觉得只能在路由前面把index 和login之类的加上

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

routes.MapRoute(
name: "Default",
url: "login",
defaults: new { controller = "Accoun", action = "login"}
);

 其他的在下面正常写  

haifeng_0712 | 园豆:109 (初学一级) | 2016-06-13 00:02

那如果说 每个控制器下有多个action呢   这样也可以吗

支持(0) 反对(0) 阿连 | 园豆:136 (初学一级) | 2016-06-13 09:34

还请大侠再帮忙说下,如果说有多个控制器并且每个控制器下对应多个action,该如何处理?

支持(0) 反对(0) 阿连 | 园豆:136 (初学一级) | 2016-06-13 09:46
0

可以这样写   自己建个小项目 测试玩玩

陈怼怼 | 园豆:208 (菜鸟二级) | 2016-06-13 09:28
0

MVC路由匹配规则是按照路由注册顺序的,一旦有匹配的会立即返回,所以你注意你的路由注册顺序

针对你需要自定义路由。在默认路由之前注册你的自定义路由,路由名称不能相同,1L的注册名称相同

默认情况MVC是路由访问规则是{controller}/{action}/{id}

如果你单纯的想通过{action}访问到A的action则需要定义一个路由.指定其的controller

如:

routes.MapRoute(
name: "action_a",
url: "actionA",
defaults: new { controller = "Acontroller", action = "actionA"}
);

当然如果你的B也有同名的action则访问不到了,只能通过/B/action 去访问B的这个action了

Я!ńɡ | 园豆:268 (菜鸟二级) | 2016-06-15 16:48
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册