[英]Routing in ASP.NET Webforms .NET 4.0 - GetVirtualPath returns null
我在名為RouteConfig的靜態類中有以下代碼,由App_Start調用:
// Create routes with default values for parameters
routes.MapPageRoute(
"SearchResultsRoute",
"SearchResults/{delegatesurname}/{starsid}/{dealercode}/{leadassessorid}/{locationid} /{datefrom}/{dateto}/{statusid}",
"~/SearchResults.aspx",
false,
new RouteValueDictionary
{
{"delegatesurname", string.Empty},
{"starsid", string.Empty},
{"dealercode", string.Empty},
{"leadassessorid", 0},
{"locationid", 0},
{"datefrom", string.Empty},
{"dateto", string.Empty},
{"statusid", 0}
}
);
// EnableFriendlyUrls() is removed, as that was blocking the routing for some reason.
我還有一個名為“ Navigator”的類,其中包含構建URL的方法:
protected string GetUrlFromRouteAndParams(string routeName, IDictionary<string,object> parameters)
{
var routeDict = new RouteValueDictionary(parameters);
var q = RouteTable.Routes.GetVirtualPath(null, routeName, routeDict);
return ""; // ignore this line its not pertinent to question
}
現在,當我調用上面的GetUrlFromRouteAndParams時,如下所示:
var pageParams = new Dictionary<string, object>()
{
{"delegatesurname", _view.DelegateSurname}
{"starsid", _view.STARSID},
{"dealercode", _view.DealerCode},
{"leadassessorid", _view.LeadAssessorID},
{"locationid", _view.LocationID},
{"datefrom", string.Empty },
{"dateto", string.Empty},
{"statusid", 0}
};
var url = navigator.GetUrlFromRouteAndParams("SearchResultsRoute", pageParams);
上面的GetUrlFromRouteAndParams中的GetVirtualPath調用返回null。
為什么是這樣? 我該如何解決?
提前致謝。
嘗試這個
//var routeDict = new RouteValueDictionary(parameters);
var q = RouteTable.Routes.GetVirtualPath(null, routeName, null).VirtualPath;
return q.ToString();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.