0

我正在尝试从 asp.net mvc 中的子操作的上下文中锻炼当前路由的 url。

为此,我正在使用:

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

这很好,期望它不考虑区域。如何扩展以考虑当前区域路由?

4

1 回答 1

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;
于 2012-07-19T10:39:56.863 回答