如何从代码隐藏中访问RouteData?

在使用ASP.Net路由时,如何从代码隐藏中获取RouteData?

我知道你可以从RouteHandler的GetHttpHander方法得到它(你得到了RequestContext),但是你能从代码隐藏中获得吗?

有没有像…

RequestContext.Current.RouteData.Values["whatever"]; 

…你可以访问全局,就像你可以用HttpContext做的一样?

还是说RouteData只能从RouteHandler内部访问?

您可以使用以下内容:

 RouteTable.Routes.GetRouteData(new HttpContextWrapper(HttpContext.Current)); 

您也可以使用以下内容:

 //using System.Web; HttpContext.Current.Request.RequestContext.RouteData 

我想你需要创build一个RouteHandler,然后你可以在GetHttpHandler事件过程中将值推送到HTTPContext中。

 foreach (var urlParm in requestContext.RouteData.Values) { requestContext.HttpContext.Items[urlParm.Key] = urlParm.Value; } 

您可以在此MSDN文章中find更多信息。