2009-08-14 2 views
0

하나의 매개 변수를 사용하는 경로가있을 때 Html.ActionLink에 문제가 있습니다. 나는 global.asx에서 다음 라우터를 가지고 : ASP.NET MVC에서 사용자 지정 경로 문제

 routes.MapRoute(
      "Default",            // Route name 
      "{controller}/{action}/{id}",       // URL with parameters 
      new { controller = "Home", action = "Index", id = "" } // Parameter defaults 
     ); 
     routes.MapRoute(
      "materias", 
      "{controller}/{action}/{id},{titulo_materia}.html", 
      new { controller = "materias", action = "Index", id = "", titulo_materia = "" } 
     ); 

내가 ActionLink는 두 개의 매개 변수를 전달 사용

은, 모든 작품을 좋아. 그러나 나는 내가 좋아하는 뭔가 결국 첫 번째 경로를 사용하여 링크를 만들려고 할 때 :

http://meusite.com/controller-name/[parameter],.html

편집 :

: 여기

데 문제가 난`액션 링크입니다
<span class="editar"><%=Html.ActionLink("Editar", "Edit", "Users", new { id = this.Model.login }, null)%></span> 

이 링크는 사용자 데이터를 관리하는 데 사용되는 다른 페이지입니다.

+0

후 당신의 Html.ActionLink 코드 –

+0

내가 편집 한 내 게시물을. – Cleiton

+0

첫 번째 경로 규칙을 두 번째 경로 규칙으로 옮기려면 어떻게해야합니까? –

답변

1

먼저 당신이 맨 아래에 가장 일반적인 경로를 넣어해야합니다.

그런 방법은 같은 것을하기에 관하여 :

routes.MapRoute(
     "materias", 
     "{materias}/{action}/{id},{titulo_materia}.html", 
     new { controller = "materias", action = "Index", id = "", titulo_materia = "" } 
    ); 

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

이 방법의 materias 경로 만 materias 컨트롤러 작동합니다.

EDIT (테스트하지) : htmm .. 작은 추가로 마틴의 예를 사용하여 시도해보십시오 actionlink 코드

Html.RouteLink("Link Title", new { controller = "Controller", Action= "Action",id = this.Model.login }); 
+0

나는 그것을 테스트했다. 그러나 나는 같은 결과를 얻고있다. 내가 "http://meusite.com/controllerName/[first-paramters]?titulo_materia=foobar – Cleiton

+0

예!"와 같은 것을 얻을 때 두 명의 매개 변수를 가진 actionlink를 사용하여 링크를 만들려고 시도합니다! – Cleiton

0

는 사용 :

Html.RouteLink("Link Title", new { controller = "Controller", Action= "Action" }); 
+0

@ 마틴,하지만 사용자 정보를 얻으려면 사용자 ID를 전달해야합니다. – Cleiton

관련 문제