2016-10-24 3 views
-1

Html.ActionLink 메서드에 문제가 있습니다. 내가 하나 이상의 경로 값이있는 Html.ActionLink

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

내가이 HREF와 링크를 얻을 사용하는 경우

: 괜찮지 만, 내가

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

처럼 더 경로 값을 사용하는 경우 내가 얻을

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

이 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 파일입니다

Edition은 더 많은 정보를 제공하기 위해 여기에

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

액션'public ActionResult MyAction (string id, byte param1, byte param2)'에서'[Route ("MyController/MyAction/{id}/{param1}/{param2}")]' 똑같은 것이 있다고 생각했습니다. – 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 
);