ASP.net 4.0 が登場する前は、検索エンジンに適したユーザーフレンドリーな URL を作成するために、URL の書き換えを自分で実装する必要がありましたが、.Net 4.0 ではその必要がなくなりました。 UrlRouting は、URL の書き換えを実装するだけでなく、書き換えられた URL をパラメーターを通じて取得し、ページ上で使用できるため、ルーティングと呼ばれます。
1. URLルーティングの一般的な使用法
URLRouting は Asp.Net Mvc プロジェクトで広く使用されており、Mvc では非常に便利なので、Web フォームでどのように使用されるかを見てみましょう。毎日のブログ用のページを作成する必要があるという使用シナリオを想定します。投稿に必要な URL アドレスは次のとおりです。
/archive/2010/05/10/default.aspx
このアドレスは ~/posts.aspx ファイルにマップされます
UrlRouting を使用するには、UrlRouting ルールを RouteTable に登録する必要があります。グローバル ファイルにルーティング ルールを登録するコードは次のとおりです。
view sourceprint?01 public static void RegisterRoutes(RouteCollection ルート)
02 {
03 ルート.Ignore("{リソース}.axd/{*pathInfo}");
04
05 Routes.MapPageRoute("blogs", //この UrlRouting ルールに名前を付けます
06 "archive/{year}/{month}/{date}/default.aspx", // フレンドリーな URL アドレス形式を希望します
07 "~/blogs.aspx", //マップされた aspx ページのパス
08 false, //ユーザー権限を確認する必要がありますか?
09 new 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}
21
22 void Application_Start(オブジェクト送信者、EventArgs e)
23 {
24 //Application_Start に登録されたルーティング ルール
25 RegisterRoutes(RouteTable.Routes);
26}
2. ページで UrlRouting パラメータ値を使用します。 1) バックグラウンド コードで Route 値を使用します。
view sourceprint?1 protected void Page_Load(object sender, EventArgs e)
2 {
3 文字列年 = (文字列)RouteData.Values["年"];
4 文字列月 = (文字列)RouteData.Values["月"];
5 文字列日付 = (文字列)RouteData.Values["日付"];
6}
2) ページ内での使用
view sourceprint?1 <asp:Literal ID="literal Year" 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 を使用する
view sourceprint?1 <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:TestDb %>"
2 SelectCommand="カテゴリ = @category のブログからブログ ID、ブログタイトルを選択">
3 <パラメータの選択>
4 <asp:RouteParameter Name="category" RouteKey="category" />
5 </パラメータの選択>
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