Простой вопрос Html.Actionlink (MVC3) - PullRequest
0 голосов
/ 24 августа 2011

Маршрут:

            routes.MapRoute(
            "Items", // Route name
            "{controller}/{action}/{id}", // URL with parameters
            new {controller = "Item", action = "Index", id = UrlParameter.Optional} // Parameter defaults
            );

htmlhelper:

@Html.ActionLink("Chairs", "List", "Item", new {id="Chairs"}, null)

Генерируемая ссылка:

http://localhost:57899/Item/List?id=Chairs

Что я хочу показать:

 http://localhost:57899/Item/List/Chairs

Как это сделать?

Ответы [ 2 ]

0 голосов
/ 24 августа 2011

Вы вызываете Html.RouteLink (не Action Link) и сопоставляете дополнительный маршрут с вашим универсальным, как это:

routes.MapRoute(
        "ChairsRoute", // Route name
        "Item/List/{id}", // URL with parameters
        new {controller = "Item", action = "Index", id = UrlParameter.Optional} // Parameter defaults
        );

когда вы вызываете RouteLink, вы просто передаете это имя "ChairsRoute"

0 голосов
/ 24 августа 2011

Вместо использования ActionLink, что произойдет, если вы попробуете следующее?

@Html.RouteLink("Items", new { id = "Chairs" })
...