Avant ASP.net 4.0, afin de créer des URL conviviales pour les moteurs de recherche, nous devions implémenter nous-mêmes la réécriture d'URL. Désormais, nous n'avons plus besoin de le faire. UrlRouting est appelé Routing car il implémente non seulement la réécriture d'URL, mais peut également obtenir l'URL réécrite via des paramètres et l'utiliser sur la page.
1. Utilisation courante du routage d'URL
UrlRouting est largement utilisé dans les projets Asp.Net Mvc et est très utile dans Mvc, il est donc transplanté dans le formulaire Web. Voyons d'abord comment il est utilisé dans le formulaire Web. Supposons un scénario d'utilisation : nous devons créer une page pour un blog quotidien. posts. L’adresse URL que nous voulons est :
/archive/2010/05/10/default.aspx
Cette adresse sera mappée au fichier ~/posts.aspx
Pour utiliser UrlRouting, vous devez enregistrer les règles UrlRouting dans RouteTable. Le code d'enregistrement des règles de routage dans le fichier Global est le suivant :
view sourceprint?01 public static void RegisterRoutes (itinéraires RouteCollection)
02 {
03 routes.Ignore("{resource}.axd/{*pathInfo}");
04
05 routes.MapPageRoute("blogs", //Donnez un nom à cette règle UrlRouting
06 "archive/{year}/{month}/{date}/default.aspx", //Format d'adresse URL convivial pour l'espoir
07 "~/blogs.aspx", //Le chemin de la page aspx mappée
08 false, //Devez-vous vérifier les autorisations des utilisateurs ?
09 nouveau RouteValueDictionary{ { "année", DateTime.Now.Year },
10 { "mois", DateTime.Now.Month },
11 {"date", DateHeure.Maintenant.Date}
12 },//Valeur par défaut du paramètre
13 nouveaux RouteValueDictionary {
14 {"année",@"(19|20)d{2}"},
15 {"mois",@"d{1,2}"},
16 {"date",@"d{1,2}"}
17 } //Règles de paramètres, nous limitons l'année, le mois et le jour dans l'url au format de données souhaité.
18);
19
20}
vingt-et-un
22 void Application_Start (expéditeur d'objet, EventArgs e)
vingt-trois {
24 //Règles de routage enregistrées sur Application_Start
25 RegisterRoutes(RouteTable.Routes);
26}
2. Utilisez la valeur du paramètre UrlRouting dans la page 1) Utilisez la valeur Route dans le code d'arrière-plan
afficher sourceprint?1 protected void Page_Load (expéditeur de l'objet, EventArgs e)
2 {
3 chaîne année = (string)RouteData.Values["year"];
4 chaînes mois = (chaîne)RouteData.Values["mois"];
5 chaîne date = (string)RouteData.Values["date"];
6}
2) Utiliser sur la page
afficher sourceprint?1 <asp:Literal ID="literalYear" runat="server" Text="<%$RouteValue:year %>"></asp:Literal>
2 -<asp:Literal ID="literal1" runat="server" Text="<%$RouteValue:month %>"></asp:Literal>
3 -<asp:Literal ID="literal2" runat="server" Text="<%$RouteValue:date %>"></asp:Literal>
3) Utilisez RouteParameter dans DataSource
afficher sourceprint?1 <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:TestDb %>"
2 SelectCommand="SELECT BlogID,BlogTitle FROM Blogs Where Category = @category">
3 <SélectionnerParamètres>
4 <asp:RouteParameter Name="category" RouteKey="category" />
5 </SélectionnerParamètres>
6 </asp:SqlDataSource>
4) Afficher RouteUrl sur la page
view sourceprint?1 <a href='<%=GetRouteUrl("blogs",new {year=2010,month=05,date=05}) %>'>Blog du 1er mai 2010</a>
3. La différence entre UrlRouting et UrlRewrite
UrlRouting est une chose relativement nouvelle par rapport à la réécriture d'URL. L'avantage d'UrlRouting est qu'il peut effectuer une conversion bidirectionnelle, mais également obtenir l'adresse URL réécrite en fonction de certains paramètres. ses propres défauts. Par exemple, si vous souhaitez réécrire le nom de domaine, comme l'adresse du blog yukaizhao.cnblogs.com, UrlRouting ne peut pas le faire et vous ne pouvez utiliser que UrlRewrite.
http://www.cnblogs.com/yukaizhao/archive/2010/05/20/urlrouting_asp_net_40.html