Comment pouvez-vous accéder à RouteData à partir du code-behind?

Lorsque vous utilisez le routage ASP.Net, comment pouvez-vous obtenir le RouteData à partir du code-behind?

Je sais que vous pouvez l’obtenir à partir de la méthode GetHttpHander du RouteHandler (vous recevez le RequestContext), mais pouvez-vous l’obtenir du code-behind?

Y a-t-il quelque chose comme …

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

… que vous pouvez accéder globalement, comme vous pouvez le faire avec HttpContext?

Ou est-ce que RouteData est uniquement destiné à être accessible depuis l’intérieur de RouteHandler?

Vous pouvez utiliser les éléments suivants:

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

Vous pouvez également utiliser les éléments suivants:

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

Je pense que vous devez créer un RouteHandler, puis vous pouvez pousser les valeurs dans HTTPContext pendant l’événement GetHttpHandler.

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

Vous pouvez trouver plus d’informations dans cet article MSDN .