2010-11-26 6 views
0

私はASP.NET MVCで次のタイプのルートを使用したいと思います。ルートの最初のノードとしてパラメータを持つことは可能ですか?

  • {a}/{b} - > SiteController.Search(a、b)は(a及びbは任意の文字列)

依然としてにHomeControllerを有しながら

  • home/index - > HomeController.Index( )

これは可能ですか?ホームコントローラのルートがハードコーディングされていれば可能ですか? すなわち:

routes.MapRoute(
      "Home",     // Route name 
      "Home/{action}",   // URL with parameters 
      new { action = "Index" } // Parameter defaults 
     ); 

答えて

1

ルーティングエンジンは、これらの2つのURLの間で明確にすることはできませんので、ありません、これはデフォルトルートを削除せずに可能ではない:

あなたが {a}/{b}に合わせて第一及び第二の {controller}/{action}をしたいと仮定すると、
foo/bar 
home/index 

。たとえあなたの例のようにルートをハードコードしても、の最初のルートと常に一致します。home/index

また、abが任意の文字列である場合、クエリ文字列パラメータとして渡された方が良いでしょう。

関連する問題