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

有帮助吗?

解决方案

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

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

其他提示

如果您在 IIS 7 上运行,则只需删除 ASP.NET MVC 附带的 Default.aspx 文件即可(假设您在 Preview 3 或更高版本上运行)。由于 Cassini 的问题已在 .NET 3.5 SP1 中修复,因此需要该文件。欲了解更多详情,请查看:

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

实际上,我喜欢将所有家庭控制器方法都放在站点的根目录中。像这样:/关于、/联系方式等我想我很挑剔。我使用一个简单的路线约束来做到这一点。 这是我的博客文章和代码示例。

我想补充一下

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

在RouteConfig.cs中

这就是我为了摆脱 Home 所做的事情。它将把所有只有一个说明符的路由视为 Home/Action,将任何有两个说明符的路由视为 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 或更高版本)。由于 Cassini 的问题已在 .NET 3.5 SP1 中修复,因此需要该文件。

欲了解更多详情,请查看:

即将发生的路由变化.NET 3.5 SP1 Beta 及其对 MVC 的影响

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top