GetVirtualPath返回第一个路由

时间:2011-01-09 06:27:50

标签: asp.net-mvc asp.net-routing

我的项目路线出了个奇怪的问题。 这是我的路线:

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

Ay idean我做错了什么?

1 个答案:

答案 0 :(得分:0)

默认情况下,它返回第一条路线。获取虚拟路径时应指定路由名称。 http://msdn.microsoft.com/en-us/library/cc680260.ASPX

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