1

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+リーダー

4

1 に答える 1