4

Got a strange problem with my project routes. Here are my routes:

            // 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
        );

the site structure is:
Controllers
-> MyHome
--> AuthorController
--> ArticleController
->Views
--> Article
---> Index.aspx
-> Author
-> Index.aspx

But when i call

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

from the /MyHome/Article page, It always return the first routes (MyHome/Author)

Ay idean what am I doing wrong?

Jonathan
  • 11,809
  • 5
  • 57
  • 91
user568385
  • 51
  • 3

1 Answers1

0

By default it is returning first route. You should specify route name when getting virtual path. http://msdn.microsoft.com/en-us/library/cc680260.ASPX

RouteTable.Routes.GetVirtualPath(this.viewContext.RequestContext, "article", ..
Eugene K.
  • 85
  • 1
  • 11