ASP.Net MVC でホームを削除するにはどうすればよいですか?
-
08-06-2019 - |
質問
このサイトが ASP.Net MVC を使用して書かれていることはわかっていますが、URL に「/Home」が表示されません。これは私にとってそれが可能であることを証明しています。どのような特別なルートが必要ですか?
解決
「Home」を空の文字列に変更するだけです。
routes.MapRoute(
"Home",
"",
new { action = Index, controller = Home }
);
他のヒント
IIS 7 で実行している場合は、ASP.NET MVC に付属する Default.aspx ファイルを削除するだけで済みます (Preview 3 以降で実行していると仮定します)。このファイルは、.NET 3.5 SP1 で修正された Cassini の問題のために必要でした。詳細については、以下をご覧ください。
http://haacked.com/archive/2008/04/10/upcoming-changes-in-routing.aspxそしてhttp://haacked.com/archive/2008/05/12/sp1-beta-and-its-effect-on-mvc.aspx
私は実際、ホーム コントローラーのメソッドをすべてサイトのルートに置くのが好きです。このような:/about、/contact など私は好き嫌いがあると思います。これを行うには、単純なルート制約を使用します。 コードサンプルを含む私のブログ投稿は次のとおりです。
付け加えます
routes.MapRoute("NoIndex", "{action}", new { controller = "Home", action = "Index" });
RouteConfig.cs 内
これは私がホームを取り除くためにやったことです。指定子が 1 つだけあるすべてのルートをホーム/アクションとして扱い、指定子が 2 つあるルートはすべてコントローラー/アクションとして扱います。欠点は、コントローラーに明示的なインデックス (/Controller != /Controller/Index) が必要になることですが、これはあなたや他の人にとって役立つかもしれません。
routes.MapRoute(
"Default",
"{action}",
new { controller = "Home", action = "Index" }
);
routes.MapRoute(
"Actions",
"{controller}/{action}",
new { }
);
IIS 7 では、ASP.NET MVC に付属する Default.aspx ファイルを削除するだけで済みます (Preview 3 以降を実行していると仮定します)。このファイルは、.NET 3.5 SP1 で修正された Cassini の問題のために必要でした。
詳細については、以下をご覧ください。