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"];
}