我正在尝试从asp.net mvc中的子操作上下文中查找当前路径的URL。
为此我正在使用:
Url.RouteUrl(ControllerContext.ParentActionViewContext.RouteData.Values)
这很好,期望它不考虑区域。如何扩展以考虑当前的区域路由?
答案 0 :(得分: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;