내 ASP.NET MVC3 응용 프로그램에서 라우팅에 문제가 있습니다. 원하는대로 작동하지 않습니다. 특정 paginations '페이지 내 MVC3 라우팅을 수정하는 방법
/{lang}/{controller}/{action}/{page}/{id}
로 이동 - - 기억
/{lang}/{controller}/{action}/{page}
: Global.asax에에서라우팅 정의
routes.MapRoute( "News", // Route name "{lang}/{controller}/{action}/{page}/{id}", // URL with parameters new { lang = "pl", controller = "News", action = "Index", page = 1, id = UrlParameter.Optional } // Parameter defaults );
그래서 나는이 상황에서 사용합니다 현재 페이지 및 특정
id
페이지로 이동합니다.
i
페이지의 수이며, 랭 언어 @Html.RouteLink(i.ToString(), "News", new { lang = ViewBag.Lang, page = i })
.
컨트롤러에서 내가 그것을 마녀 액션 처리 : ('2'클릭 된 경우)하지만 내 컨트롤러가 처리하지 않습니다
public ViewResult Index(string lang, int page = 1)
문제
@Html.RouteLink
것은 나에게 링크 /pl/News/Index/2
을 제공합니다 그것과 페이지는 여전히 '1'입니다. 따라서 동일한 링크를 두 번 클릭하면 다음과 같이 나타납니다 : /pl/News/Index/2/2
그리고 나서 페이지는 '2'와 같습니다.
누군가가 내게 정확히 어떻게 작동하는지 설명 할 수 있다면 해결할 수 있습니까?
도움을 주시면 감사하겠습니다.
을하지만, 내가 컨트롤러에서'id' (선택 사항)가 보이지 않습니다.'Index (string lang, int? id, int page = 1)'가되어서는 안됩니다. :) –
당신은 신중하게 읽지 않습니다 :) 인덱스 액션에서 나는'id' 파라미터를 사용하지 않습니다. 다른 액션에서만 필요합니다. –
제대로 이해했다면'/ pl/News/Index/2'를 클릭하면 오른쪽 _Index_ 액션이 실행되지만이 액션 내의 _page_ 값은 2가 아니라 1이됩니다.이 경로와 일치 할 수있는 다른 경로가 없습니까? 링크? –