从网址隐藏控制器名称

时间:2013-10-02 18:59:25

标签: asp.net-mvc url routes

我想隐藏网址中的控制器名称并执行此操作

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

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


        routes.MapRoute(
           "Default", // Route name
           "{controller}/{action}/{id}", // URL with parameters
           new { controller = "Home", action = "Index", id = UrlParameter.Optional }// Parameter defaults
       );

    }

但是当我试着去

localhost:1234 /设置 - 不工作。

localhost:1234 /帐户/设置 - 工作..

关于这一点有很多问题,所有这些问题都表明了我上面已有的内容。 我在哪里做错了?或者我错过了什么?

2 个答案:

答案 0 :(得分:2)

AccountRoute移到Default路线下方。请记住,创建这样的路线可能会导致意想不到的后果。

答案 1 :(得分:0)

尝试向AccountRoute添加可选参数。请注意,您的操作与控制器的名称不同,否则路由将无法正常工作。

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