1 つの aspx を持つアプリがあり、さまざまな ascx ユーザー コントロールを読み込みます。page.aspx?section=product&prodid=123
このページは、製品などにアクセスするためのURL を形成します。
これを変更して、クリーンな URL を使用するように依頼されました。したがって、私の計画は、取得page.aspx/product/NAME
してから製品をロードすることです。
主なルートは 3 つあります。
製品 製品リスト コンテンツ
そう。私global.asax
は持っています:
void Application_Start(object sender, EventArgs e)
{
// Code that runs on application startup
RegisterRoutes(RouteTable.Routes);
}
public static void RegisterRoutes(RouteCollection routeCollection)
{
routeCollection.MapPageRoute("RouteForProduct", "Product/{ProductName}", "~/IRShop.aspx", false, new RouteValueDictionary { { "ProductName", String.Empty } });
routeCollection.MapPageRoute("RouteForProductList", "ProductList/{CatName}", "~/IRShop.aspx", false, new RouteValueDictionary { { "CatName", String.Empty } });
routeCollection.MapPageRoute("RouteForContentList", "Content/{PageName}", "~/IRShop.aspx", false, new RouteValueDictionary { { "PageName", String.Empty } });
}
System.Web.Routing も使用しています。
私の中でpage.aspx
。C#コード、私は最初にやろうとしました:
string id = Page.RouteData.Values["ProductName"].ToString();
しかし、URL に移動しpage.aspx/Product/TestProduct
てコードをステップ実行すると、Page.RouteData
常にnull
. ページをロードするにはもっと必要なことはわかっていますが、読んだ限りでは、少なくともルーティングがどのように機能しているかを確認するには、これで十分だと思っていたでしょう。
私の参考文献は次のとおりです。 29&utm_content=Google+リーダー