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:
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.
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
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
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"); }
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.
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" ); }
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" })); }
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).
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"]); }