4

ASP.NET MVC今後のプロジェクトの枠組みを学ぶことを考えています。高度なルーティングを使用して、サイトマップ階層に基づいて長いURLを作成できますか?

ナビゲーションパスの例:

ホーム>ショップ>製品>家庭>キッチン>調理器具>調理器具>焦げ付き防止

典型的な(私が思う)MVC URL:
http ://example.com/products/category/NonstickCooksets

目的のURL:
http ://example.com/shop/products/household/kitchen/cookware/cooksets/nonstick

これはできますか?

4

2 に答える 2

10

ザック、私が正しく理解していれば、サブカテゴリの深さを無制限にする必要があります。大したことではありません。MVCプレビュー3(3または4だと思います)以降、これは解決されました。

次のようなルートを定義するだけです

"{controller} / {action} / {* categoryPath}"

次のようなURLの場合:

http://example.com/shop/products/household/kitchen/cookware/cooksets/nonstick

Productsアクションを持つShopControllerが必要です:

public class ShopController : Controller
{
...
    public ActionResult Products(string categoryPath)
    {
        // the categoryPath value would be
        // "household/kitchen/cookware/cooksets/nonstick". Process it (for ex. split it)
        // and then decide what you do..
        return View();
    }
于 2008-08-31T12:38:24.453 に答える
2

MVC ルーティングを使用すると、必要なほとんどすべての構造を定義できます。各部分が意味的に何を意味するかを定義するだけで済みます。「shop/products」のように「ハードコーディング」されたビットを持ち、残りを「{category}/{subcategory}/{speciality}」などの変数として定義できます。

必要に応じて、すべてが同じ終点にマップされる複数のルートを定義することもできます。基本的に、URL が MVC アプリに入ると、一致するパターンが見つかるまでルーティング テーブルを通過し、変数を入力して、処理のために適切なコントローラーに要求を渡します。

デフォルト ルートは単純なコントローラー、アクション、ID のような設定ですが、できることはそれだけではありません。

于 2008-08-18T17:50:58.763 に答える