2012-07-19 2 views
0

나는 운동에의 asp.net MVC에서 자식 작용의 맥락에서 현재 경로에 대한 URL을 시도하고있다. MVC3의 ChildAction에서 Area의 현재 Action URL을 어떻게 찾을 수 있습니까?

은 내가 사용하고이 작업을 수행하려면

Url.RouteUrl(ControllerContext.ParentActionViewContext.RouteData.Values) 

이 괜찮습니다, 그것은 계정 영역으로 고려하지 않습니다 기대합니다. 현재 지역 라우팅을 고려하기 위해 어떻게이를 확장 할 수 있습니까?

답변

0

좋아, 여기에 내가 한 일이있다. 본질적으로 현재 작업에 영역이 있는지 확인한 다음 RouteUrl 호출에 전달하는 사전에이 영역을 추가합니다.

var context = ControllerContext.ParentActionViewContext; 

var routeValueDict = new RouteValueDictionary(); 

foreach (var value in context.RouteData.Values) 
{ 
    routeValueDict.Add(value.Key, value.Value); 
} 

var area = context.RouteData.DataTokens["area"]; 
if (area != null) 
{ 
    routeValueDict.Add("area", area); 
} 

var url = Url.RouteUrl(routeValueDict); 
return url; 
관련 문제