如何在操作链接中隐藏主控制器路径

时间:2011-09-22 02:52:13

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

使用开箱即用的MVC应用程序,Home控制器下的动作链接呈现如下

@Html.ActionLink("Home", "Index", "Home")  > /
@Html.ActionLink("About", "About", "Home") > /Home/About

如何制作属于HomeController的所有操作链接以隐藏链接路径中的“Home”。

e.g

@Html.ActionLink("About", "About", "Home")     > /About
@Html.ActionLink("Contact", "Contact", "Home") > /Contact
@Html.ActionLink("Sitemap", "Sitemap", "Home") > /Sitemap
@Html.ActionLink("Terms", "Terms", "Home")     > /Terms

由于

2 个答案:

答案 0 :(得分:2)

您可以在路线部分设置控制器并将其从网址中删除。像这样:

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

同时查看this answer

答案 1 :(得分:1)

您可以在RouteConfig类中创建不同的路由,如下所示:

routes.MapRoute(
                name: "AboutUs",
                url: "about-us",
                defaults: new { controller = "Home", action = "AboutUs" }
            );

这样,当URL为/ about-us时,它将调用Home Controller中的AboutUs操作。