ホームコントローラに存在する「About Us」や「Contact Us」のような簡単なビューがあります。コントローラがURLを渡さなかったときに、MVCルートルールがホームコントローラにデフォルト設定される
私は、URLの代わりに、私はURLでアクションを指定していないときに、他のコントローラをこのの世話をするが、壊す新しいルートを追加www.xyz.com/Home/ContactUs
のwww.xyz.com/ContactUs
みたいに自宅部分を持っていない希望
// Home Routes
RouteTable.Routes.MapRoute("HomeRoute", "{action}", new { controller = "Home", action = "Index" });
// Default
RouteTable.Routes.MapRoute("Default", "{controller}/{action}", new { controller = "Home", action = "Index" });
これは明らかに、ルートエンジンがwww.xyz.com/ContactUs
のようなURLにどのルートを使用するかを判断できず、最初のものをマッチさせるためです。
私はそれぞれコントローラを作ることができますが、これはあまり効率的ではないようです。私はビューごとに1つの空のビューアクションをラップするために30のコントローラで終わることは嫌です。
私はたぶん各コントローラを作成することになりますが、何かのようなルートを作成する方法があるかどうかを知りたがっています"1つのパラメータだけが渡された場合は、 、もしそれが家庭用コントローラーのためであると仮定しないならば。
[なぜasp.net mvcの共通ルートの前に特別なルートをマップするのですか?](https://stackoverflow.com/a/35674633/)を参照してください。 MVCに最初のルートをスキップして2番目のルートに移動するよう指示するには、何かが必要です。最も単純なオプションは '{action}'(文字通り何かにマッチする)を使うのではなく、 'ContactUs'のようなルート設定で静的URLを使うことです。属性ルーティングは別のオプションですが、独自の問題があります(つまり、属性を作成する際には常に注意する必要があります*デフォルトで*未定義の注文*があるため、Orderプロパティを明示的に設定する必要があります) 。 – NightOwl888