До ASP.net 4.0, чтобы сделать URL-адреса удобными для поисковых систем и пользователей, нам нужно было самостоятельно переписывать URL-адреса. Теперь .Net 4.0 делает все это за нас. UrlRouting называется маршрутизацией, потому что он не только реализует перезапись URL-адреса, но также может получить переписанный URL-адрес через параметры и использовать его на странице.
1. Обычное использование URL-маршрутизации
UrlRouting широко используется в проектах Asp.Net Mvc и очень полезен в Mvc, поэтому давайте сначала посмотрим, как он используется в веб-форме. Предположим сценарий использования: нам нужно создать страницу для ежедневного блога. messages. URL-адрес, который нам нужен:
/архив/2010/05/10/default.aspx
Этот адрес будет сопоставлен с файлом ~/posts.aspx.
Чтобы использовать UrlRouting, вам необходимо зарегистрировать правила UrlRouting в RouteTable. Код для регистрации правил маршрутизации в глобальном файле выглядит следующим образом:
просмотреть исходный текст? 01 public static void RegisterRoutes (маршруты RouteCollection)
02 {
03 Routes.Ignore("{resource}.axd/{*pathInfo}");
04
05 Routes.MapPageRoute("blogs", //Присвойте этому правилу UrlRouting имя
06 "archive/{year}/{month}/{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 {"месяц",@"д{1,2}"},
16 {"дата",@"d{1,2}"}
17 } //Правила параметров: мы ограничиваем год, месяц и день в URL нужным нам форматом данных.
18);
19
20}
двадцать один
22 void Application_Start (отправитель объекта, EventArgs e)
двадцать три {
24 //Правила маршрутизации, зарегистрированные в Application_Start
25 RegisterRoutes(RouteTable.Routes);
26}
2. Используйте значение параметра UrlRouting на странице. 1) Используйте значение Route в фоновом коде.
просмотреть исходный отпечаток? 1 protected void Page_Load (отправитель объекта, EventArgs e)
2 {
3 строка год = (строка)RouteData.Values["год"];
4 строки месяц = (строка)RouteData.Values["месяц"];
5 строка date = (строка)RouteData.Values["дата"];
6}
2) Использовать на странице
просмотреть исходный текст?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) Используйте RouteParameter в источнике данных.
просмотреть исходный код?1 <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:TestDb %>"
2 SelectCommand="ВЫБРАТЬ BlogID,BlogTitle ИЗ блогов, где категория = @category">
3 <Выбор параметров>
4 <asp:RouteParameter Name="category" RouteKey="category" />
5 </ВыбратьПараметры>
6 </asp:SqlDataSource>
4) Отображение RouteUrl на странице
просмотреть исходный код?1 <a href='<%=GetRouteUrl("blogs",new {year=2010,month=05,date=05}) %>'>Блог от 1 мая 2010 г.</a>
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