如何在ASP.Net MVC中摆脱Home?

时间:2008-08-19 01:02:59

标签: asp.net-mvc asp.net-mvc-routing

我知道这个网站是使用ASP.Net MVC编写的,我在网址中看不到“/ Home”。这向我证明它可以做到。我需要什么特殊的路线?

6 个答案:

答案 0 :(得分:16)

只需将“Home”更改为空字符串即可。

routes.MapRoute(
    "Home",
    "",
    new { action = Index, controller = Home }
);

答案 1 :(得分:8)

如果您在IIS 7上运行,则只需删除ASP.NET MVC附带的Default.aspx文件(假设您在预览版3或更高版本上运行)。由于在.NET 3.5 SP1中修复了Cassini的问题,因此需要该文件。有关详细信息,请查看:

http://haacked.com/archive/2008/04/10/upcoming-changes-in-routing.aspxhttp://haacked.com/archive/2008/05/12/sp1-beta-and-its-effect-on-mvc.aspx

答案 2 :(得分:6)

我实际上喜欢将所有家庭控制器方法放在网站的根目录下。像这样:/ about,/ contact等我想我很挑剔。我使用一个简单的路由约束来做到这一点。 Here is my blog post with a code sample.

答案 3 :(得分:1)

我添加

routes.MapRoute("NoIndex", "{action}", new { controller = "Home", action = "Index" });
在RouteConfig.cs中

答案 4 :(得分:0)

这就是我摆脱Home所做的。它将只使用一个说明符作为Home / Action处理所有路由,并将任何两个说明符作为Controller / Action处理。缺点是现在控制器必须有一个显式索引(/ Controller!= / Controller / Index),但它可能会帮助你或其他人。

routes.MapRoute(
    "Default",
    "{action}",
    new { controller = "Home", action = "Index" }
);

routes.MapRoute(
    "Actions",
    "{controller}/{action}",
    new { }
);

答案 5 :(得分:-2)

在IIS 7中,您只需删除ASP.NET MVC附带的Default.aspx文件(假设您在预览版3或更高版本上运行)。由于在.NET 3.5 SP1中修复了Cassini的问题,因此需要该文件。

有关详细信息,请查看:

Upcoming Changes In Routing.NET 3.5 SP1 Beta and Its Effect on MVC