1

我想从 url 中隐藏控制器名称并做到这一点

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
       );

    }

但是当我想去的时候

本地主机:1234/设置 - 不工作。

本地主机:1234/帐户/设置-works..

关于这一点有很多问题,所有这些问题都暗示了我上面已经提出的问题。我在哪里做错了?还是我错过了什么?

4

2 回答 2

2

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

于 2013-10-02T19:17:44.560 回答
0

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

routes.MapRoute(
    "AccountRoute",
    "{action}/{id}",
    new { controller = "Account", action = "Index", id = UrlParameter.Optional }
);
于 2013-10-02T19:14:06.590 回答