Sebelum ASP.net 4.0, untuk membuat URL ramah mesin pencari dan ramah pengguna, kami perlu menerapkan penulisan ulang Url sendiri. Sekarang kami tidak perlu melakukannya. UrlRouting disebut Perutean karena tidak hanya mengimplementasikan penulisan ulang Url, tetapi juga dapat memperoleh Url yang ditulis ulang melalui parameter dan menggunakannya pada halaman.
1. Penggunaan umum Perutean Url
UrlRouting banyak digunakan dalam proyek Asp.Net Mvc dan sangat berguna di Mvc, sehingga ditransplantasikan ke formulir web. Pertama-tama mari kita lihat cara penggunaannya dalam formulir web. Mari kita asumsikan skenario penggunaan: kita perlu membuat halaman untuk blog sehari-hari posting.Alamat url yang kita inginkan adalah:
/archive/2010/05/10/default.aspx
Alamat ini akan dipetakan ke file ~/posts.aspx
Untuk menggunakan UrlRouting, Anda perlu mendaftarkan aturan UrlRouting ke dalam RouteTable. Kode untuk mendaftarkan aturan Routing di file Global adalah sebagai berikut:
lihat sourceprint?01 public static void RegisterRoutes(Rute RouteCollection)
02 {
03 rute.Abaikan("{resource}.axd/{*pathInfo}");
04
05 rute.MapPageRoute("blogs", //Beri nama pada aturan UrlRouting ini
06 "archive/{year}/{month}/{date}/default.aspx", //Format alamat Url yang ramah harapan
07 "~/blogs.aspx", //Jalur halaman aspx yang dipetakan
08 salah, //Apakah Anda perlu memeriksa izin pengguna?
09 RouteValueDictionary baru{ { "tahun", DateTime.Sekarang.Tahun },
10 { "bulan", TanggalWaktu.Sekarang.Bulan },
11 {"tanggal", TanggalWaktu.Sekarang.Tanggal}
12 },//Nilai default parameter
13 RouteValueDictionary baru {
14 {"tahun",@"(19|20)h{2}"},
15 {"bulan",@"d{1,2}"},
16 {"tanggal",@"d{1,2}"}
17 } //Aturan parameter, kita membatasi tahun, bulan dan hari pada url sesuai format data yang kita inginkan.
18);
19
20}
dua puluh satu
22 batal Application_Start(pengirim objek, EventArgs e)
dua puluh tiga {
24 //Aturan perutean terdaftar di Application_Start
25 DaftarRute(RuteTable.Rute);
26}
2. Gunakan nilai parameter UrlRouting di halaman 1) Gunakan nilai Rute di kode latar belakang
lihat sourceprint?1 dilindungi kekosongan Page_Load(pengirim objek, EventArgs e)
2 {
3 string tahun = (string)RouteData.Values["tahun"];
4 string bulan = (string)RouteData.Values["bulan"];
5 string tanggal = (string)RouteData.Values["tanggal"];
6}
2) Gunakan di halaman
lihat 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) Gunakan RouteParameter di DataSource
lihat sourceprint?1 <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:TestDb %>"
2 SelectCommand="PILIH BlogID,BlogTitle DARI Blog Dimana Kategori = @category">
3 <PilihParameter>
4 <asp:RouteParameter Name="kategori" RouteKey="kategori" />
5 </PilihParameter>
6 </asp:SqlDataSource>
4) Tampilkan RouteUrl di halaman
lihat sourceprint?1 <a href='<%=GetRouteUrl("blogs",new {year=2010,month=05,date=05}) %>'>Blog pada 1 Mei 2010</a>
3. Perbedaan antara UrlRouting dan UrlRewrite
UrlRouting adalah hal yang relatif baru dibandingkan dengan penulisan ulang Url. Keuntungan dari UrlRouting adalah dapat melakukan konversi dua arah, tidak hanya dapat melakukan penulisan ulang URL, tetapi juga mendapatkan alamat Url yang ditulis ulang berdasarkan beberapa parameter kekurangannya sendiri, misalnya ingin menulis ulang nama domain seperti alamat blog yukaizhao.cnblogs.com, UrlRouting tidak bisa melakukannya, dan hanya bisa menggunakan UrlRewrite.
http://www.cnblogs.com/yukaizhao/archive/2010/05/20/urlrouting_asp_net_40.html