ツリーナビゲーションシステムの構造に従うルートを作成しようとしています。つまり、ルートにツリー内のパス全体を含めたいと考えています。だから私がこのような木を持っていたら
- コンピューター
- ソフトウェア
- 発達
- グラフィックス
- ハードウェア
- CPU
- グラフィックカード
- ソフトウェア
それならこんなルートにしたいと思います
- site.com/catalog/computers/software/graphics
これは、それ自体は難しくなく、このようなルートで捕まえることができます
- カタログ/{*カテゴリ}
ただし、そのURLの最後に製品情報を追加できるようにしたいのですが、次のようになります。
- site.com/catalog/computers/software/graphics/title=Photoshop
これは、次の例のように定義されたルートを再利用することを意味します
- site.com/{*categories}/title={name}
- site.com/{*categories}
ただし、これらのルートの最初のルートは無効です。{* category}などの貪欲なパラメーターの後に他に何も表示されないため、少し行き詰まっています。正規表現ルートを実装するか、IRouteContraintを使用してこれを回避することを考えていましたが、Html.ActionLink(...)メソッドを使用してアウトバウントURLを生成できる適切なソリューションは考えられません。 {*categories}と{name}の両方に入力しました
どんなアドバイスも大歓迎です!
昨日私が同じような質問を見たことがあるかもしれませんが、それ以降はもっと考えて、古い質問には私の問題の不完全な説明が含まれていたため、削除されました。
UPDATE2008/11/26ソリューションをhttp://thecodejunkie.blogspot.com/2008/11/supporting-complex-route-patterns-with.htmlに投稿しました