在MVC asp.net中注册多个路由

时间:2013-04-22 05:03:21

标签: asp.net-mvc asp.net-mvc-routing maproute


我想在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 }
        );

    }

1 个答案:

答案 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 }
        );

    }