0

这是我的代码:

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

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

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

对于第一个链接,如果我转到:localhost/song localhost/date 等它会很好地打开主控制器下的所有链接。

但是对于第二个 maproute:localhost/admin localhost/admin/index - 这些链接不起作用?谁能告诉我我做错了什么?

4

1 回答 1

1

首先,您的默认路由必须是列表中的最后一个,而不是第一个。

其次,您有两条默认路由。MVC 无法知道使用哪个,所以它总是选择第一个匹配的。相反,您的管理员网址应该是"Admin/{action}/{id}"

于 2012-09-16T19:27:42.180 回答