2014-07-10 1 views
2
내가 App_Start에 의해 호출 RouteConfig라는 정적 클래스에 다음 코드가있다

반환 내가 위에서 GetUrlFromRouteAndParams를 호출 할 때과 같이, 이제라우팅 .NET 4.0 GetVirtualPath가 null가

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 
} 

: : 방법은 URL을 구축

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을 반환합니다.

왜 이런가요? 어떻게 해결할 수 있습니까?

미리 감사드립니다.

+0

는 Q의 값을 받고 시도? –

+0

q가 null인데 경로를 찾을 수 없다는 것을 암시하지만 브라우저에 searchresults/Scott/URL을 입력하여 테스트 한 결과 정상적으로 작동합니다. – Scott

+0

EnableFriendlyUrls()도 라우팅을 방해 했으므로 제거했습니다 – Scott

답변

0

//var routeDict = new RouteValueDictionary(parameters); 
var q = RouteTable.Routes.GetVirtualPath(null, routeName, null).VirtualPath; 
return q.ToString();