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