15

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

4

6 回答 6

16

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

routes.MapRoute(
    "Home",
    "",
    new { action = Index, controller = Home }
);
于 2008-08-19T01:07:34.903 回答
8

如果您在 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.aspxhttp://haacked.com/archive/2008/05/12/sp1-beta-and-its-对 mvc.aspx 的影响

于 2008-08-20T22:55:03.123 回答
6

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

于 2011-01-15T11:35:59.560 回答
1

我会补充

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

在 RouteConfig.cs 中

于 2014-12-11T14:28:41.747 回答
0

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

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

routes.MapRoute(
    "Actions",
    "{controller}/{action}",
    new { }
);
于 2015-02-08T01:47:38.687 回答
-2

在 IIS 7 中,您可以简单地删除 ASP.NET MVC 附带的 Default.aspx 文件(假设您在 Preview 3 或更高版本上运行)。由于在 .NET 3.5 SP1 中修复的 Cassini 问题,需要该文件。

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

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

于 2013-03-22T06:54:29.320 回答