51 votes

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

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

Je sais que vous pouvez l'obtenir à l'aide de la méthode GetHttpHander de RouteHandler (vous obtenez le RequestContext), mais pouvez-vous l'obtenir à partir 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 du RouteHandler?

162voto

Hosam Aly Points 14797

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

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

36voto

Rupert Bates Points 1690

Vous pouvez utiliser les éléments suivants:

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

0voto

Jeff Points 4497

Je pense que vous devez créer un RouteHandler pour pouvoir ensuite transférer les valeurs dans HTTPContext lors de 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 .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X