Asp.net mvc 2 asp.net mvc2路由

Asp.net mvc 2 asp.net mvc2路由,asp.net-mvc-2,routes,Asp.net Mvc 2,Routes,因此,我已将此路线添加到我的地图中: routes.MapRoute( "Default", "/Bikes/{id}", new { controller = "Bike", action = "Detail" } ); 但出于SEO的原因,我们需要有如下URL:/bikes/54/自行车名称/自行车种类/车轮数量。。。等等,但id 54之后的所有内容都可以忽略 有没有人知道如何创建这样一个MapRoute来允许,上面的路由

因此,我已将此路线添加到我的地图中:

    routes.MapRoute(
        "Default", 
        "/Bikes/{id}", 
        new { controller = "Bike", action = "Detail" }
    );
但出于SEO的原因,我们需要有如下URL:/bikes/54/自行车名称/自行车种类/车轮数量。。。等等,但id 54之后的所有内容都可以忽略

有没有人知道如何创建这样一个MapRoute来允许,上面的路由实际上不适用于包含id后面的内容的URL。

类似这样的东西

routes.MapRoute(
    "Default", 
    "/Bikes/{id}/{slug*}", 
    new { controller = "Bike", action = "Detail", 
          slug = UrlParameter.Optional}
);
像这样的

routes.MapRoute(
    "Default", 
    "/Bikes/{id}/{slug*}", 
    new { controller = "Bike", action = "Detail", 
          slug = UrlParameter.Optional}
);

可以像这样使用catchall参数

routes.MapRoute(
    "Default", 
    "/Bikes/{id}/{*stuff}", 
    new { controller = "Bike", action = "Detail", stuff = UrlParameter.Optional }
);

然后id之后的任何内容都将存储在stuff中

您可以像这样使用catchall参数

routes.MapRoute(
    "Default", 
    "/Bikes/{id}/{*stuff}", 
    new { controller = "Bike", action = "Detail", stuff = UrlParameter.Optional }
);
然后id之后的任何内容都将存储在stuff中

您需要使用{*slug},因为您的无效。您需要使用{*slug},因为您的无效