Routage ASP.NET avec Web Forms

J’ai lu le routage ASP.NET… Adieu la réécriture des URL? et Utilisation du routage avec WebForm, d’ excellents articles, limités à de simples exemples illustrant la complexité du “bonjour le monde”.

Quelqu’un utilise-t-il le routage ASP.NET avec des formulaires Web de manière non sortingviale? Des pièges à connaître? Les problèmes de performance? Autres lectures recommandées que je devrais examiner avant de me lancer dans une implémentation de la mienne?

EDIT trouvé ces URL utiles supplémentaires:

  • Comment: utiliser le routage avec des formulaires Web (MSDN)
  • Routage ASP.NET (MSDN)
  • Comment: construire une URL à partir d’une route (MSDN)

Scott Hanselman (MSFT) montre comment obtenir des formulaires Web ASP.NET, ASP.NET MVC et des données dynamics ASP.NET – oh et AJAX à travailler ensemble harmonie.

http://www.hanselman.com/blog/PlugInHybridsASPNETWebFormsAndASPMVCAndASPNETDynamicDataSideBySide.aspx

Deux liens très utiles pour le routage .net 4.0 et ASP.net

  • Procédure pas à pas: utilisation du routage ASP.NET dans une application Web Forms

  • Routage ASP.net

J’ai vu ce podcast lié au blog de ScottGu l’autre jour qui pourrait vous être utile

http://morewally.com/cs/blogs/wallym/archive/2008/10/08/asp-net-podcast-show-125-routing-with-webforms.aspx

Le guide pas à pas de Mike Ormond sur la configuration du routage d’URL avec ASP.NET est excellent ( Mise en route du routage ASP.NET – Le Guide définitif )

Vous pouvez trouver le routage d’URL expliqué de manière simple dans les articles suivants. Il fournit des informations telles que, envoyer une demande sur une route, récupérer des parameters d’URL sur la page de destination, définir des valeurs par défaut pour les parameters.

Routage d’URL dans la partie de formulaires Web ASP.Net – 1

Routage des URL dans la partie relative aux formulaires Web ASP.Net – 2

Un exemple simple d’utilisation du routage dans ASP.NET

  1. Créer une application Web vide
  2. Ajouter le premier formulaire – Default.aspx
  3. Ajouter un deuxième formulaire – Second.aspx
  4. Ajouter une troisième forme – Third.aspx
  5. Ajouter à default.aspx 3 boutons –

    protected void Button1_Click(object sender, EventArgs e) { Response.Redirect("Second.aspx"); } protected void Button2_Click(object sender, EventArgs e) { Response.Redirect("Third.aspx?Name=Pants"); } protected void Button3_Click(object sender, EventArgs e) { Response.Redirect("Third.aspx?Name=Shoes"); } 
  6. Lire la chaîne de requête sur la troisième page

     protected void Page_Load(object sender, EventArgs e) { Response.Write(Request.QuerySsortingng["Name"]); } 

Maintenant, si vous exécutez le programme, vous pourrez accéder aux deuxième et troisième formulaires. C’est comme ça avant. Ajoutons le routage.

  1. Ajouter un nouvel élément – Global.aspx using System.Web.Routing;

     protected void Application_Start(object sender, EventArgs e) { RegisterRoutes(RouteTable.Routes); } void RegisterRoutes(RouteCollection routes) { routes.MapPageRoute( "HomeRoute", "Home", "~/Default.aspx" ); routes.MapPageRoute( "SecondRoute", "Second", "~/Second.aspx" ); routes.MapPageRoute( "ThirdRoute", "Third/{Name}", "~/Third.aspx" ); } 
  2. Dans default.aspx, modifiez la protection protégée Button1_Click (expéditeur de l’object, EventArgs e) {// Response.Redirect (“Second.aspx”); Response.Redirect (GetRouteUrl (“SecondRoute”, null)); }

     protected void Button2_Click(object sender, EventArgs e) { //Response.Redirect("Third.aspx?Name=Pants"); Response.Redirect(GetRouteUrl("ThirdRoute", new {Name = "Pants"})); } protected void Button3_Click(object sender, EventArgs e) { // Response.Redirect("Third.aspx?Name=Shoes"); Response.Redirect(GetRouteUrl("ThirdRoute", new { Name = "Shoes" })); } 
  3. Modifier le chargement de la page dans third.aspx

     protected void Page_Load(object sender, EventArgs e) { //Response.Write(Request.QuerySsortingng["Name"]); Response.Write(RouteData.Values["Name"]); } 

Exécutez le programme. Notez que l’URL est beaucoup plus propre. Il n’ya pas d’extension de fichier (Second.aspx devient juste Second).

  1. Pour passer plus d’un argument

    • Ajoutez un nouveau bouton à default.aspx avec le code suivant:

       protected void Button4_Click(object sender, EventArgs e) { Response.Redirect(GetRouteUrl("FourthRoute", new { Name = "Shoes" , Gender = "Male"})); } 
    • ajoutez le code suivant à global.asax

        routes.MapPageRoute( "FourthRoute", "Fourth/{Name}-{Gender}", "~/Fourth.aspx" ); 
    • créer une page Fourth.aspx avec le chargement de page suivant:

       protected void Page_Load(object sender, EventArgs e) { Response.Write("Name is: " + RouteData.Values["Name"] + " and Gender is " + RouteData.Values["Gender"]); }