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 .