簡體   English   中英

在ASP.NET Webforms .NET 4.0中路由-GetVirtualPath返回null

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM