2011-10-30 2 views
0

페이징 시스템으로 변경되었습니다. 모든 것은 괜찮습니다. 두 번째 페이지를 클릭하면 모든 홈페이지 링크가 변경됩니다.html.actionlink의 잘못된 URL입니다.

@Html.ActionLink("Home page", "Index", "Home") //This is standard routing without values. 

페이징 링크가 페이지 끝 부분에 추가되었습니다. 이 같은

<a href="/Home/Index/2">Home page</a> 

내 모든 홈페이지 링크가 변환 : 나는 2 페이지 이상 (www.site.com/Home/Index/2 예컨대)를 클릭하면

@Html.ActionLink("2", "Index", "Home", New With {.id = 2}, Nothing) //This works good too. 

내 문제입니다. 이 문제를 어떻게 해결할 수 있습니까?

+0

문제가있는 현재 URL은 무엇입니까? –

+0

@ Html.ActionLink ("홈페이지", "색인", "집") 명령은이 값과 동일한 Home page을 생성합니다. –

답변

3

두 번째 페이지를 클릭하면 {.id = 2}이 RouteData의 일부가됩니다. 라우팅은 아마 다음과 같습니다 때문에 (Gloabal.asax에서)

routes.MapRoute(_ 
     "Default", _ 
     "{controller}/{action}/{id}", _ 
     New With {.controller = "Home", .action = "Index", .id = UrlParameter.Optional} _ 
    ) 

ASP.NET MVC는 생성 된 링크를이 경로를 사용합니다. 이 문제를 해결하려면 필요없는 경우 명시 적으로 재정의해야합니다.

@Html.ActionLink("Home page", "Index", "Home", New With {.id = ""}, Nothing) 
관련 문제