質問

このサイトが 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 の問題のために必要でした。

詳細については、以下をご覧ください。

ルーティングの今後の変更点 そして .NET 3.5 SP1 ベータ版と MVC への影響

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top