GetVirtualPath возвращает первый маршрут - PullRequest
4 голосов
/ 09 января 2011

У меня странная проблема с маршрутами моего проекта.Вот мои маршруты:

            // pennames
        routes.MapRoute(
            "pennames", // Route name
            "MyHome/Authors/{action}/{id}", // URL with parameters
            new { controller = "Author", action = "Index", id = UrlParameter.Optional } // Parameter defaults
        );

        // article
        routes.MapRoute(
            "article", // Route name
            "MyHome/Articles/{action}/{id}", // URL with parameters
            new { controller = "Article", action = "Index", id = UrlParameter.Optional } // Parameter defaults
        );

структура сайта:
Контроллеры
-> MyHome
-> AuthorController
-> ArticleController
-> Просмотры
-> Статья
---> Index.aspx
-> Автор
-> Index.aspx

Но когда я звоню

RouteTable.Routes.GetVirtualPath(this.viewContext.RequestContext..

изстраница / MyHome / Article, всегда возвращаются первые маршруты (MyHome / Author)

Да, что я делаю не так?

1 Ответ

0 голосов
/ 08 октября 2013

По умолчанию возвращается первый маршрут.Вы должны указать имя маршрута при получении виртуального пути.http://msdn.microsoft.com/en-us/library/cc680260.ASPX

RouteTable.Routes.GetVirtualPath(this.viewContext.RequestContext, "article", ..
...