1

ASP.NET MVC で Web ショップを構築中です。私が達成したいのは、Web ショップのルートにあるすべての製品のリストです。言い換えれば、ベース URL の直後に製品名を含む、SEO に最適化されたわかりやすい URL が必要です。例えば:

myexamplewebshop.com/beautiful-red-coat

myexamplewebshop.com/yellow-t-shirt

これらのリンクのいずれかをクリックすると、製品の詳細ページが表示されます。これを機能させるには、ルーティング コードのどこかを変更する必要があると思います。これを達成する方法の例を誰か教えてもらえますか? どんな助けでも大歓迎です。

4

2 に答える 2

2

次のようなルートを追加します。

routes.MapRoute(
    "SEO_Product", // Route name
     "{seoterm}",
 new { controller = "Product", action = "LookupBySEO" }
);

次に、製品コントローラーでメソッドを追加します。

public ActionResult LookupBySEO(string seoterm) {

    // convert URL encoded seoterm into product name

    // lookup product by name

}

このルートは、デフォルト ルートの前に追加する必要があります。注: サイトの他のすべてのページをルート レベル (/aboutus、/home など) にすることはできません。

于 2013-03-07T18:58:47.123 に答える
1

RegisterRoutes 関数にカスタム ルートを追加する必要があります。

        routes.MapRoute(
                "ProductFriendly", // Route name
                "{productId}", // URL with parameters
                new {  controller = "YourProductControllerName", action = "YourProductActionName"  } // Parameter defaults
        );

YourProductControllerName呼び出されたアクションにマップしますYourProductActionName

public ActionResult YourProductActionName(string productId)
{
  // your code goes here...
}
于 2013-03-07T18:53:49.180 に答える