0
Мне было интересно, как получить URL-адрес с учетом областей, контроллеров и имен действий. До сих пор все, что мне удалось найти, это:Получить VirtualPath из области, контроллера и действия
var httpContext = new HttpContextWrapper(HttpContext.Current);
var routeData = RouteTable.Routes.GetRouteData(httpContext);
if (routeData != null) {
var virtualPath = routeData.Route.GetVirtualPath(new RequestContext(httpContext, routeData), new RouteValueDictionary(new { area = "Pages", controller = "Home", action = "Index" }));
if (virtualPath != null)
newNode.Url = "~/" + virtualPath.VirtualPath;
}
Однако это не работает. Мне было интересно, может ли кто-нибудь помочь.
Благодаря
Где вы должны это делать? У вас есть доступ к HTTP-контексту? Когда вы говорите, что это не работает, вы можете быть немного более конкретным и объяснить ожидаемый результат и фактический результат? –
Спасибо за ваш ответ. Я пытаюсь добавить его к поставщику MVC SiteMap, который я нашел в Интернете. Я обнаружил, что мне не хватает поддержки в области, поэтому я решил, что просто добавлю это в словарь значений маршрута, но это не так, поскольку выбран неправильный маршрут. У меня такое чувство, что это связано с токенами данных. – nfplee