我想在MVC中制作几个相同的地图路线。
本地主机:1010 / ABCD /家/索引
本地主机:1010 /家庭/索引/ ABCD
id = abcd controller = home action = index
我使用了以下代码,但它不起作用
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"ShoppingManagment",
"{id}/{controller}/{action}",
new { controller = "ShoppingManagment",
action = "ShoppingManagment", id = UrlParameter.Optional });
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home",
action = "Index", id = UrlParameter.Optional }
);
}
答案 0 :(得分:12)
它不起作用,因为两条路线的格式相同。
因此MVC路由引擎无法区分两种网址模式。
尝试将Controller直接写入url模式。
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"ShoppingManagment",
"{id}/ShoppingManagment/{action}",
new { controller="ShoppingManagment", action = "ShoppingManagment", id = UrlParameter.Optional });
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home",
action = "Index", id = UrlParameter.Optional }
);
}