2010-12-15 4 views
0

で最高掛け合わさレベルルートをどのように行うのですか、私は私のようなURLたいサイトがあります。私はMVC

/Some maincategory name/{id}/Some subcategory name/{id}/Some item name/{id}

を名前が一意ではありませんので、私は、各レベルのIDが含まれています。これは可能ですが、私は各レベルのための新しいルーティングを作成する必要があります。私のHtml.ActionLinkも厄介です。

各レベルには、レベルが全く異なるため、独自のコントローラがあります。

_/Birds/2/Waders/4/Flamingos/23_ 
_/Mammals/5/Dogs/23/Longeared/25/Somedog/76_ 
_/Insects/7/Spiders_ 

これは単なる一例であり、私が使用するつもりはないです:URLは次のようなものである可能性があります。私のアプリケーションは動物とは関係ありません。

これを行う良い方法がありますか、代わりに標準ルーティングを使用する必要がありますか?

+0

だから、あなたは/鳥/ 2 /鳥獣/ 4/_ *と* /鳥/ 48 /鳥獣/ 7/_を持っていると言いますから、それらを別のコントローラーに送る必要がありますか?申し訳ありませんが、私の脳はあなたが達成しようとしていることを理解しようとするだけで痛いです。 IDを削除する方法はほとんどありませんが、教えてくれるような詳細、具体的な詳細を与えていません。 –

答えて

0

このための2つのソリューションがあります:

http://you.url.com/controller/action/ {ミッド}/{SID}/{TID}

ミッド=メインカテゴリIDをもたらすグローバルルーティングを使用

  1. は sid =サブカテゴリID tid =アイテムID

  2. ルーティングとクエリ文字列

    http://you.url.com/controller/action/ {TID}?半ば= {半ば} & SID = {SID}

私はあなたが第二の方法を使用することをお勧め、あなたがルートに大量にアップしていませんもの。この助けを願って!

+0

私はグローバルルートでこれを行う方法を知っていますが、解決策は醜いように見え、誰かがスマートでよりクリーンな方法でこれを行う方法を知っているかどうかを知りたいと思っていました。また、私は各レベルのコントローラ/ビューを持っており、最大5レベルかもしれません。私は私が望むものが私のURLのbreadcrumであると思います... – Lilja

+0

私はそれをコントローラ/アクション/ {id}で標準的なMVCのやり方で単純にしました。 – Lilja

0

各ノードのカテゴリ、値、URLを記述したxmlファイルを作成し、それらのXMLノードをループしてルートテーブルを作成する方法はありますか?

この種のxmlは、ページ上にパン粉を作るのにも役立ちます。

関連する問題