ASP.Net 4.0 Routing


Global.aspx.cs に RegisterRoutes を追加。

void Application_Start(object sender, EventArgs e)
{
    // アプリケーションのスタートアップで実行するコードです
    BundleConfig.RegisterBundles(BundleTable.Bundles);
    AuthConfig.RegisterOpenAuth();

    RegisterRoutes(RouteTable.Routes);
}

// これは例です。
void RegisterRoutes(RouteCollection routes)
{
    // Register a route for Categories/All
    routes.MapPageRoute(
       "All Categories",      // Route name
       "Categories/All",      // Route URL
       "~/AllCategories.aspx" // Web page to handle route
    );

    // Route to handle Categories/{CategoryName}.
    // The {*CategoryName} instructs the route to match all content after the first slash, which is needed b/c
    //  some category names contain a slash, as in the category "Meat/Produce"
    // See http://forums.asp.net/p/1417546/3131024.aspx for more information
    routes.MapPageRoute(
       "View Category",               // Route name
       "Categories/{*CategoryName}",  // Route URL
       "~/CategoryProducts.aspx"      // Web page to handle route
    );

    // Register a route for Products/{ProductName}
    routes.MapPageRoute(
       "View Product",           // Route name
       "Products/{ProductName}", // Route URL
       "~/ViewProduct.aspx"      // Web page to handle route
    );

    // Register a route for Products/{ProductName}
    routes.MapPageRoute(
       "View Product2",           // Route name
       "Products/Test/{P1}/{P2}/{P3}", // Route URL
       "~/Test.aspx"      // Web page to handle route
    );
}


CategoryProducts.aspx.cs

/Categories/X1/X2/CategoryName とした場合、
data=”X1/X2/CategoryName”となる。

public partial class CategoryProducts : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        var data = Page.RouteData.Values["CategoryName"];
    }
}


Test.aspx.cs

/Products/Test/X1/X2/X3 とした場合、
data=”X1”, data2=”X2”, data3=”X3” となる。

protected void Page_Load(object sender, EventArgs e)
{
    var data = Page.RouteData.Values["P1"];
    var data2 = Page.RouteData.Values["P2"];
    var data3 = Page.RouteData.Values["P3"];
}

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中


%d人のブロガーが「いいね」をつけました。