SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

ASP.NET 4 Beta入門

サーバーサイドの開発改善に注目!
~VS2010+ASP.NET 4新機能(後編)~

ASP.NET 4 Beta入門(2)


Web FormにおけるURLルーティング

 ASP.NET 3.5 SP1からURLルーティングという機能が導入されました。既存のASP.NETでは、フォルダ階層に沿ったURLしか表示できませんでしたが、URLルーティングを利用することで、仮想的にURLマッピングを行えるようになります。

 ASP.NET MVCでは、このURLルーティングがキモの1つとして利用されていますが、ASP.NET 3.5 SP1の段階では、Web Formでの利用は手続きが煩雑で利用することが多くはありませんでした。しかし、ASP.NET 4からはWeb FormでもURLルーティングの利用のハードルがグッと下がりました(図5~6)。

図5 URLRouting実装例1
図5 URLRouting実装例1
図6 URLRouting実装例2
図6 URLRouting実装例2

 最もシンプルなURLルーティング設定の流れを記載します。

  1. Global.asaxにルーティングルールを記載
  2. URLルーティング元のページと、先のページをそれぞれ用意
  3. HyperLinkコントロールなどを使用し、URLルーティングのアドレスを設定

 以上です。原理はASP.NET MVCのURLルーティングと同じなので、ASP.NET MVCを触れたことがある方はイメージがしやすいかと思います。それでは順に解説します。

1.Global.asaxにルーティングルールを記載

 Webアプリケーション起動時に一度だけ呼び出されるGlobal.asaxのApplication_Startメソッドから、RegisterRoutesメソッドを呼び出してルーティングルールをルートコレクションに追加します。

Global.asaxの一部
// Webアプリケーション起動時に一度だけ呼び出されるメソッド
void Application_Start(object sender, EventArgs e)
{
    RegisterRoutes(RouteTable.Routes);
}

// ルーティングルールを記載するメソッド
void RegisterRoutes(RouteCollection routes)
{
    routes.MapPageRoute("",
        "Sample/{number}",
        "~/URLRouting/Routing.aspx");
}

 上記設定では、「Sample/{number}」というURLがリクエストされた時に、「~/URLRouting/Routing.aspx」ページにルーティングするという設定をしています。

2.URLルーティング元のページと、先のページをそれぞれ用意

 基本ですが、URLルーティング元のページ(サンプルではURLRouting/URLRouting.aspx)と、URLルーティングでルーティングされるページ(サンプルではURLRouting/Routing.aspx)を用意します。

3.HyperLinkコントロールなどを使用し、URLルーティングのアドレスを設定

 最後に、URLのリクエストを行うためのハイパーリンクコントロールを記述します。

Routing.aspxの一部
<li>
    <asp:HyperLink ID="hlRouting" runat="server"
        NavigateUrl="~/Sample/20">
        ルーティングサンプル。数値は20
    </asp:HyperLink>

    <中略>

</li>

 上記サンプルでは、NavigateUrlプロパティにURLをハードコーディングしています。

 以上の設定でURLルーティングの実装は完了です。実行結果は前述の図5~6の通りです。URLルーティングに関する詳しい解説は『ちょっと先取り Routing 4:その1 PageRouteHandler』(どっとねっとふぁんBlog)を参照ください。

次のページ
ASP.NET 4の新コントロール

この記事は参考になりましたか?

ASP.NET 4 Beta入門連載記事一覧
この記事の著者

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

WINGSプロジェクト ナオキ(ナオキ)

WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。 2026年時点での登録メンバは約50名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/4853 2010/02/19 11:52

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー