Um suchmaschinenfreundliche und benutzerfreundliche URLs zu erstellen, mussten wir vor ASP.net das URL-Rewriting selbst implementieren. Jetzt muss .Net 4.0 das alles nicht für uns tun. UrlRouting wird Routing genannt, weil es nicht nur das Umschreiben von URLs implementiert, sondern auch die umgeschriebene URL über Parameter abrufen und auf der Seite verwenden kann.
1. Allgemeine Verwendung von URL-Routing
UrlRouting wird in Asp.Net Mvc-Projekten häufig verwendet und ist in Mvc sehr nützlich. Schauen wir uns daher zunächst an, wie es in Webform verwendet wird: Wir müssen eine Seite für den täglichen Blog erstellen Die gewünschte URL-Adresse lautet:
/archive/2010/05/10/default.aspx
Diese Adresse wird der Datei ~/posts.aspx zugeordnet
Um UrlRouting zu verwenden, müssen Sie die UrlRouting-Regeln in der RouteTable registrieren. Der Code zum Registrieren der Routing-Regeln in der globalen Datei lautet wie folgt:
Quelle anzeigenprint?01 public static void RegisterRoutes(RouteCollection Routen)
02 {
03 Routen.Ignore("{resource}.axd/{*pathInfo}");
04
05 Routen.MapPageRoute("blogs", //Geben Sie dieser URLRouting-Regel einen Namen
06 „archive/{Jahr}/{Monat}/{Datum}/default.aspx“, //Hoffnungsfreundliches URL-Adressformat
07 „~/blogs.aspx“, //Der zugeordnete ASPX-Seitenpfad
08 false, //Müssen Sie die Benutzerberechtigungen überprüfen?
09 neues RouteValueDictionary{ { "year", DateTime.Now.Year },
10 { "Monat", DateTime.Now.Month },
11 {"Datum", DateTime.Now.Date}
12 },//Standardwert des Parameters
13 neues RouteValueDictionary {
14 {"Jahr",@"(19|20)d{2}"},
15 {"Monat",@"d{1,2}"},
16 {"Datum",@"d{1,2}"}
17 } //Parameterregeln, wir beschränken das Jahr, den Monat und den Tag in der URL auf das gewünschte Datenformat.
18);
19
20}
einundzwanzig
22 void Application_Start(object sender, EventArgs e)
dreiundzwanzig {
24 //Routing-Regeln bei Application_Start registriert
25 RegisterRoutes(RouteTable.Routes);
26}
2. Verwenden Sie den UrlRouting-Parameterwert auf der Seite 1) Verwenden Sie den Route-Wert im Hintergrundcode
view sourceprint?1 protected void Page_Load(object sender, EventArgs e)
2 {
3 string year = (string)RouteData.Values["year"];
4 string monatlich = (string)RouteData.Values["month"];
5 string date = (string)RouteData.Values["date"];
6}
2) Verwendung auf der Seite
view 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) Verwenden Sie RouteParameter in DataSource
view sourceprint?1 <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:TestDb %>"
2 SelectCommand="SELECT BlogID,BlogTitle FROM Blogs Where Category = @category">
3 <Parameter auswählen>
4 <asp:RouteParameter Name="category" RouteKey="category" />
5 </SelectParameters>
6 </asp:SqlDataSource>
4) RouteUrl auf der Seite anzeigen
view sourceprint?1 <a href='<%=GetRouteUrl("blogs",new {year=2010,month=05,date=05}) %>'>Blog am 1. Mai 2010</a>
3. Der Unterschied zwischen UrlRouting und UrlRewrite
UrlRouting ist eine relativ neue Sache im Vergleich zum URL-Rewriting. Der Vorteil von UrlRouting besteht darin, dass es nicht nur eine URL-Rewriting durchführen kann, sondern auch die umgeschriebene URL-Adresse basierend auf einigen Parametern erhalten kann Wenn Sie beispielsweise den Domänennamen wie die Blog-Adresse yukaizhao.cnblogs.com umschreiben möchten, kann UrlRouting dies nicht tun und Sie können nur UrlRewrite verwenden.
http://www.cnblogs.com/yukaizhao/archive/2010/05/20/urlrouting_asp_net_40.html