このサイトがASP.NetMVCを使用して作成されていることを知っていますが、URLに「/Home」が表示されません。これは私にそれができることを証明します。どのような特別なルートが必要ですか?
6 に答える
「ホーム」を空の文字列に変更するだけです。
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 つだけのすべてのルートを Home/Action として扱い、2 つの指定子を Controller/Action として扱います。マイナス面は、コントローラーが明示的なインデックス (/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 の問題のために必要でした。
詳細については、以下をご覧ください。