我如何区分这2条MVC路线?

时间:2011-07-17 02:05:09

标签: asp.net-mvc-3

我在我的区域注册中有这些路线。 似乎第二条路线给了我资源未找到错误。

            context.MapRoute(
                "viewer",
                "forum/{id}",
                new { controller = "View", action = "Index" }
            );

            context.MapRoute(
                "contacts",
                "forum/contacts",
                new { controller = "Contacts", action = "Index" }
            );

        context.MapRoute(
            "app_home",
            "forum/",
            new { controller = "Home", action = "Index" }
        );

似乎第一条路线阻挡了第二条路线的网址。 动作的控制器是不同的:测试和联系人。

第一条路线的示例网址:

www.<mysite>/forum/12345  <-- view forum 12345

第二条路线的示例网址:

www.<mysite>/forum/contacts  <-- view contacts homepage

第三条路线的示例网址:

www.<mysite>/forum  <-- forum homepage

如何在路线中区分这些网址?

1 个答案:

答案 0 :(得分:4)

首先放置contacts路线。

订购路线;路由引擎将始终选择第一个匹配的路由 因此,您应该始终将最具体的路线放在首位。