删除控制器' Home'来自MVC 5中的URL

时间:2015-09-30 18:02:50

标签: controller asp.net-mvc-5 url-routing

我需要删除控制器' Home'从我的项目的URL,现在它看起来像这样:example.com/Home/contact,我希望它看起来像这样:example.com/contact(也用于其他部分作为服务,我们的团队,画廊等。 )

我尝试删除' {controller}'出现在' {action} / {id}'之前在RouteConfig.cs代码中,如下所示:

namespace myproject
{
public class RouteConfig
{
    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

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

控制器' Home'从URL中消失,但以下指向登录和管理的链接不起作用:

@Html.ActionLink("Login here", "Login", "Account")
@Html.ActionLink("Manage website", "Index", "Manage")

如何在不显示控制器的情况下使这些链接正常工作' Home'在URL?

1 个答案:

答案 0 :(得分:2)

您需要将以下内容添加到RouteConfig.cs

    routes.MapRoute(
        name: "contact",
        url: "contact",
        defaults: new { controller = "Home", action = "Contact" }
    );

确保“默认”路由映射是最后一个。