1
我得到了以下路线:RouteTable.Routes.GetVirtualPath()返回错误路线在ASP.NET MVC
// 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
);
// index
routes.MapRoute(
"MyHome", // Route name
"MyHome/{action}/{id}", // URL with parameters
new { controller = "MyHome", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
我想分页功能添加到我的“是MyHome /文章/”的说法。寻呼机使用下面的代码来获取URL:
var virtualPathData = RouteTable.Routes.GetVirtualPath(this.viewContext.RequestContext, pageLinkValueDictionary);
if (virtualPathData != null)
{
string linkFormat = "<a href=\"{0}\">{1}</a>";
return String.Format(linkFormat, virtualPathData.VirtualPath, linkText);
}
else
{
return null;
}
的问题是,虽然,我从这个代码“是MyHome /文章/”页面GetVirtualPath
总是返回第一条路线“是MyHome /作者/ “,并完全忽略路线中的前缀”MyHome/Articles /“。
当我使用ActionLink
它工作正常,而不是从GetVirtualPath
。
任何想法?
谢谢。
你看过Route Debugger吗? http://haacked.com/archive/2008/03/13/url-routing-debugger.aspx这对了解如何处理路线非常有帮助。 – 2011-01-10 21:16:26