ASP.net 4.0 이전에는 검색 엔진 친화적이고 사용자 친화적인 URL을 만들기 위해 URL 재작성을 직접 구현해야 했습니다. 이제 .Net 4.0에서는 이 모든 작업을 수행할 필요가 없습니다. UrlRouting은 Url 재작성을 구현할 뿐만 아니라 재작성된 Url을 매개변수를 통해 얻어서 페이지에서 사용할 수 있기 때문에 Routing이라고 합니다.
1. URL 라우팅의 일반적인 사용법
UrlRouting은 Asp.Net Mvc 프로젝트에서 널리 사용되며 Mvc에서 매우 유용하므로 웹 양식에 이식되었습니다. 먼저 웹 양식에서 어떻게 사용되는지 살펴보겠습니다. 일상적인 블로그를 위한 페이지를 만들어야 합니다. 우리가 원하는 URL 주소는 다음과 같습니다.
/archive/2010/05/10/default.aspx
이 주소는 ~/posts.aspx 파일에 매핑됩니다.
UrlRouting을 사용하려면 RouteTable에 UrlRouting 규칙을 등록해야 합니다. Global 파일에 라우팅 규칙을 등록하는 코드는 다음과 같습니다.
sourceprint 보기?01 public static void RegisterRoutes(RouteCollection 경로)
02 {
03 경로.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 {"월",@"d{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 값을 사용합니다.
view sourceprint?1 protected void Page_Load(객체 전송자, EventArgs e)
2 {
3 문자열 연도 = (string)RouteData.Values["연도"];
4 문자열 월 = (string)RouteData.Values["month"];
5 문자열 날짜 = (string)RouteData.Values["date"];
6}
2) 페이지에서 활용
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) DataSource에서 RouteParameter 사용
view sourceprint?1 <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:TestDb %>"
2 SelectCommand="범주 = @category인 블로그에서 BlogID,BlogTitle 선택">
3 <매개변수 선택>
4 <asp:RouteParameter Name="범주" RouteKey="범주" />
5 </SelectParameters>
6 </asp:SqlDataSource>
4) 페이지에 RouteUrl을 표시합니다.
sourceprint 보기?1 <a href='<%=GetRouteUrl("blogs",new {year=2010,month=05,date=05}) %>'>2010년 5월 1일 블로그</a>
3. UrlRouting과 UrlRewrite의 차이점
UrlRouting은 URL 재작성에 비해 상대적으로 새로운 기능입니다. URL 재작성을 수행할 수 있을 뿐만 아니라 일부 매개변수를 기반으로 재작성된 Url 주소도 얻을 수 있다는 장점이 있습니다. 예를 들어 블로그 주소 yukaizhao.cnblogs.com과 같은 도메인 이름을 다시 작성하려는 경우 UrlRouting에서는 이를 수행할 수 없으며 UrlRewrite만 사용할 수 있습니다.
http://www.cnblogs.com/yukaizhao/archive/2010/05/20/urlrouting_asp_net_40.html