2016-07-01 11 views
0

私のウェブサイトには、ユーザーがリンクをクリックしてナビゲートできる外部プロバイダからコンテンツブロックをロードするサービスがあります。MVCでサブルートを設定するには

私のルーティングでは、要求パスで私のホームコントローラを呼び出すことで、これらを処理する必要があります。

例えば、彼らがナビゲートするために使用するURLは

www../shop/hire/category/subcategory/subsubcategory/.... 

になり、彼らは特定の製品後にしている場合:その中で

www../shop/hire/category/subcategory/subsubcategory...?product=ABC 

定数、と/shop/hire/だろうあなたが現在いる場所に基づいて変化するカテゴリ、そして実際に何があったのかを見つけた場合の製品。

問題は、ホームアプリケーションを使用するのではなく、アプリケーション内でそのようなパスのリンクをクリックしてリクエストを解析し、適切なURLでサービスを呼び出すだけです

routes.MapRoute(
     name: "Category", 
     url: "shop/hire/{categories}/{product}", 
     defaults: new { controller = "Home", action = "Index", categories = UrlParameter.Optional, product = UrlParameter.Optional } 
    ); 

をが、これはどんな効果があったようには見えない:404

私はルートを追加しようとしました。

+0

を取得するために、値を解析することができますたとえば、パラメータで必要なすべてのカテゴリを渡す必要があります。 –

+0

問題は私のアーキテクチャではないということです。私はそれを使って適切な製品を見つける外部のプロバイダーに電話しています。 – Wizard

+0

[複数レベルのMVCカスタムルーティング]の可能な複製(http://stackoverflow.com/questions/31934144/multiple-levels-in-mvc-custom-routing) – NightOwl888

答えて

1

私は乗算のカテゴリーであなたのアーキテクチャは、あなたで初期状態間違っていると思いキャッチにすべてのルート

routes.MapRoute(
     name: "Category", 
     url: "shop/hire/{*categories}", 
     defaults: new { controller = "Home", action = "Index" } 
    ); 

を使用してみてください、あなたのアクションで、あなたのカテゴリと製品

public ActionResult Index(string catagories) { ... } 
関連する問題