2016-10-24 3 views
-1

У меня проблема с методом Html.ActionLink.Html.ActionLink с более чем одним значением маршрута

Если я использую

@Html.ActionLink("Some text", "MyAction", "MyController", new { id = 1234 }, null) 

я получаю ссылку с этим HREF:

http://web.com/MyController/MyAction/1234 

Это нормально, но если я использую больше значений маршрута, как

@Html.ActionLink("Some text", "MyAction", "MyController", new { id = 1234, param1 = 3, param2 = 10 }, null) 

Я получаю ссылка на этот href:

http://web.com/MyController/MyAction/1234?param1=3&param2=10 

Но мне нужно:

http://web.com/MyController/MyAction/1234/3/10 

вы знаете, как я могу это получить?

издание, чтобы дать больше информации:

В файле кода MyController я, что:

[Route("MyController/MyAction/{id}")] 
public ActionResult MyAction(string id) { /* some code */ } 

[Route("MyController/MyAction/{id}/{param1}/{param2}")] 
public ActionResult MyAction(string id, byte param1, byte param2) { /* some code */ } 

И это мой RouteCofig.cs файл:

public class RouteConfig 
{ 
    public static void RegisterRoutes(RouteCollection routes) 
    { 
     routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 

     routes.MapMvcAttributeRoutes(); 

     routes.MapRoute(
      name: "Default", 
      url: "{controller}/{action}/{id}", 
      defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
     ); 
    } 
} 
+0

У меня есть этот атрибут '[Route (« MyController/MyAction/{id}/{param1}/{param2} ")]' в действии 'public ActionResult MyAction (строка id, byte param1, byte param2)', I подумал, что есть одно и то же. – Jon

+0

Вы можете показать нам свой маршрут? –

+0

Вопрос изменен с помощью контроллера и конфигурации маршрута. Я что-то упускаю? – Jon

ответ

1

Вот ваш раствор,

routes.MapRoute(
     name: "MyRoute",           // Route name 
     url: "{controller}/{action}/{id}/{param1}/{param2}",       // URL with parameters 
     defaults: new { controller = "MyController", action = "MyAction", id = "", param1="", param2="" } // Parameter defaults 
); 
Смежные вопросы