0
난 그냥 ASP.NET 라우팅에 도입하기 오전이 개 루트는 순간에 등록 : 그러나ASP.NET 웹폼 GetVirtualPath는 항상 null을 반환
routes.MapPageRoute(
"default",
"{Path}/{Name}.aspx{Query}",
"~/Default.aspx",
true,
new RouteValueDictionary { { "Name", "default" } },
new RouteValueDictionary { { "Name", @"[-_\w]+" } });
routes.MapPageRoute(
"home",
"{Name}.aspx{Query}",
"~/Default.aspx",
true,
new RouteValueDictionary { { "Name", "default" } },
new RouteValueDictionary { { "Name", @"[-_\w]+" } });
, 나는이 노선을 사용하여 URL을 구축하려고, I 항상 예외가 발생합니다. 나는이 시도 :
private string GetVirtualPath(RouteValueDictionary values)
{
return RouteTable.Routes.GetVirtualPath(
null, values).VirtualPath;
}
와이 :
private string GetVirtualPath(RouteValueDictionary values)
{
var wrapper = new HttpContextWrapper(HttpContext.Current);
return RouteTable.Routes.GetVirtualPath(
new RequestContext(wrapper,
RouteTable.Routes.GetRouteData(wrapper)),
values).VirtualPath;
}
내가 전화 할 때
어느 쪽이든, 나는 RouteTable.Routes.GetVirtualPath
에 null 참조 예외를 얻을 : 심지어
GetVirtualPath(new RouteValueDictionary { { "Name", entity.Name } });
또는 :
을GetVirtualPath(new RouteValueDictionary { { "Name", entity.Name }, { "Query", string.Empty } });
내가 여기서 잘못하고있는거야?