2011-01-10 4 views
1

내가 가지고 다음과 같은 경로를 잘못 경로를 반환합니다. 페이저는 URL 얻기 위해 다음 코드를 사용 : 나는에서이 코드를 실행하는거야하지만RouteTable.Routes.GetVirtualPath는() ASP.NET MVC에서

var virtualPathData = RouteTable.Routes.GetVirtualPath(this.viewContext.RequestContext, pageLinkValueDictionary); 

if (virtualPathData != null) 
{ 
    string linkFormat = "<a href=\"{0}\">{1}</a>"; 
    return String.Format(linkFormat, virtualPathData.VirtualPath, linkText); 
} 
else 
{ 
    return null; 
} 

문제가있다 "인 MyHome/기사 /"페이지가 GetVirtualPath은 항상 첫 번째 경로 "인 MyHome/저자을 반환합니다/"경로에서 접두사"MyHome/Articles/"를 완전히 무시합니다.

ActionLink을 사용할 때 제대로 작동하지만 GetVirtualPath이 아닙니다.

아이디어가 있으십니까?

감사합니다.

+1

Route Debugger를 보셨습니까? http://haacked.com/archive/2008/03/13/url-routing-debugger.aspx 이것은 경로가 어떻게 처리되고 있는지를 알아 내는데 유용합니다. –

+0

예, 디버거에서 정상적으로 보입니다. GetVirtualPath의 버그 일 수 있습니까? 아니면 내 경로가 잘못 되었나요? – user568385

답변

0

당신이 당신의 인 MyHome/기사

에 페이지 매김을 적용 할 경우, 당신은

같은 하드 코드 된 경로를 제공 할 수 있습니다

yourpath = "인 MyHome/기사 페이지 =?"+ PAGE_NUMBER;

그리고보기에서 페이지 매개 변수를 받거나보기에 사용할 수있는 페이지 매김 도우미가 있어야하거나 여기에서 < % = Html.ActionLink() %> 및 통과 경로 매개 변수를 사용해야 할 때가 있습니다.