我知道这个网站是使用 ASP.Net MVC 编写的,我在 url 中看不到“/Home”。这向我证明这是可以做到的。我需要什么特别的路线?
6 回答
只需将“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-对 mvc.aspx 的影响
我实际上喜欢将我所有的家庭控制器方法都放在站点的根目录下。像这样:/about、/contact 等。我想我很挑剔。我使用一个简单的路线约束来做到这一点。 这是我的博客文章,其中包含代码示例。
我会补充
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 或更高版本上运行)。由于在 .NET 3.5 SP1 中修复的 Cassini 问题,需要该文件。
欲了解更多详情,请查看: