ก่อน ASP.net 4.0 เพื่อสร้าง URL ที่เป็นมิตรกับเครื่องมือค้นหาและใช้งานง่าย เราจำเป็นต้องเขียน Url ใหม่ด้วยตัวเอง ตอนนี้ .Net 4.0 ไม่จำเป็นต้องทำทั้งหมดนี้ให้เราแล้ว UrlRouting เรียกว่า Routing เนื่องจากไม่เพียงแต่ใช้การเขียน Url ใหม่เท่านั้น แต่ยังสามารถรับ Url ที่เขียนใหม่ผ่านพารามิเตอร์และนำไปใช้บนเพจได้อีกด้วย
1. การใช้งานทั่วไปของการกำหนดเส้นทาง URL
UrlRouting ใช้กันอย่างแพร่หลายในโปรเจ็กต์ Asp.Net Mvc และมีประโยชน์มากใน Mvc ดังนั้นจึงถูกย้ายไปยังเว็บฟอร์มก่อนอื่น มาดูวิธีการใช้เว็บฟอร์มกันก่อน สมมติว่าสถานการณ์การใช้งาน: เราจำเป็นต้องสร้างเพจสำหรับบล็อกรายวัน โพสต์ ที่อยู่ URL ที่เราต้องการคือ:
/เก็บถาวร/2010/05/10/default.aspx
ที่อยู่นี้จะถูกแมปกับไฟล์ ~/posts.aspx
หากต้องการใช้ UrlRouting คุณต้องลงทะเบียนกฎ UrlRouting ลงใน RouteTable รหัสสำหรับการลงทะเบียนกฎการกำหนดเส้นทางในไฟล์ Global มีดังนี้:
ดู sourceprint?01 โมฆะสาธารณะคง RegisterRoutes (เส้นทาง RouteCollection)
02 {
03 เส้นทาง ละเว้น ("{resource}.axd/{*pathInfo}");
04
05 เส้นทางMapPageRoute("blogs", //ตั้งชื่อกฎ UrlRouting นี้
06 "เก็บถาวร/{ปี}/{เดือน}/{date}/default.aspx", //หวังว่ารูปแบบที่อยู่ URL ที่เป็นมิตร
07 "~/blogs.aspx", //เส้นทางหน้า aspx ที่แมป
08 false // คุณจำเป็นต้องตรวจสอบการอนุญาตของผู้ใช้หรือไม่?
09 RouteValueDictionary ใหม่ { { "ปี", DateTime.Now.Year },
10 { "เดือน", DateTime.Now.Month },
11 {"วันที่", DateTime.Now.Date}
12 },//ค่าเริ่มต้นของพารามิเตอร์
13 RouteValueDictionary ใหม่ {
14 {"ปี",@"(19|20)d{2}"},
15 {"เดือน","@"d{1,2}"},
16 {"วันที่",@"d{1,2}"}
17 } //กฎของพารามิเตอร์ เราจำกัดปี เดือน และวันใน url ให้อยู่ในรูปแบบข้อมูลที่เราต้องการ
18);
19
20}
ยี่สิบเอ็ด
22 เป็นโมฆะ Application_Start (ผู้ส่งวัตถุ EventArgs e)
ยี่สิบสาม {
24 //กฎการกำหนดเส้นทางที่ลงทะเบียนที่ Application_Start
25 RegisterRoutes (เส้นทางตาราง เส้นทาง);
26}
2. ใช้ค่าพารามิเตอร์ UrlRouting ในหน้า 1) ใช้ค่าเส้นทางในโค้ดพื้นหลัง
ดู sourceprint? 1 โมฆะที่ได้รับการป้องกัน Page_Load (ผู้ส่งวัตถุ EventArgs e)
2 {
3 ปีสตริง = (สตริง)RouteData.Values["ปี"];
4 สตริงเดือน = (สตริง)RouteData.Values["เดือน"];
วันที่ 5 สตริง = (สตริง)RouteData.Values["date"];
6}
2) การใช้งานบนหน้า
ดู sourceprint?1
2 -
3 -
3) ใช้ RouteParameter ใน DataSource
ดู sourceprint?1 2 SelectCommand="เลือก BlogID,BlogTitle จากบล็อก โดยที่ Category = @category"> 3 <เลือกพารามิเตอร์> 4 5 เลือกพารามิเตอร์> 6
4) แสดง RouteUrl บนเพจ
ดู sourceprint?1 '>บล็อกเมื่อวันที่ 1 พฤษภาคม 2010
3. ความแตกต่างระหว่าง UrlRouting และ UrlRewrite
UrlRouting เป็นสิ่งใหม่เมื่อเทียบกับการเขียน Url ใหม่ ข้อได้เปรียบของ UrlRouting คือสามารถทำการแปลงแบบสองทางได้ ไม่เพียงแต่สามารถเขียน URL ใหม่ได้ แต่ยังได้รับที่อยู่ Url ที่เขียนใหม่ตามพารามิเตอร์บางตัวอีกด้วย ข้อบกพร่องของตัวเอง ตัวอย่างเช่น หากคุณต้องการเขียนชื่อโดเมนใหม่ เช่น ที่อยู่บล็อก yukaizhao.cnblogs.com UrlRouting ไม่สามารถทำได้ และคุณสามารถใช้ UrlRewrite เท่านั้น
http://www.cnblogs.com/yukaizhao/archive/2010/05/20/urlrouting_asp_net_40.html