2010-01-06 8 views
4

J'ai un projet ASP.NET 3.5 webforms J'ai activé le routage. J'ai également dans le projet un certain nombre de contrôles qui font des choses différentes en fonction de la page dans laquelle ils sont affichés. Il semblerait que la façon la plus simple de contrôler ce comportement est de découvrir quelle route a été utilisée pour charger la page. alors faites les choses en fonction de cela.Pouvez-vous déterminer le nom de l'itinéraire suivi depuis votre page Webforms?

Cependant, je n'arrive pas à trouver un moyen de découvrir la barre de route en regardant l'URL réelle de la requête et en exécutant une regex dessus ce qui n'est pas génial. Est-ce que quelqu'un sait un moyen de le chercher d'une autre manière?

Mise à jour: il ne semble toujours pas y avoir moyen de le faire dans ASP.NET 4.0. Espérons que quelqu'un d'autre a compris cela?

Répondre

0

Dans une application .NET 4 webforms, je ceci pour déterminer la définition de l'itinéraire.

string myOperation = 
    ((System.Web.Routing.Route)(Page.RouteData.Route)).Url; 

//string has value "Stop" or "Start" 

Disons que vos itinéraires sont comme ceci:

 routes.MapPageRoute("StopEmailAlerts", 
      "Stop/{SomeToken}", 
      "~/Emailing.aspx", false); 

     routes.MapPageRoute("SendEmailAlerts", 
      "Start/{SomeToken}", 
      "~/Emailing.aspx", false);  
0

J'ai posté quelques méthodes simples d'extension, vous pouvez utiliser pour obtenir/définir le nom de la route sur ce post. Cela semble plus simple (pour moi) que la solution de Haack.