2

我有以下路线。我想我可以简化它们,但我不确定如何。有人可以给我一些建议吗?这些路线中 id = ... 的原因是什么。如果我的方法中没有任何 id 参数,那么这是在做什么吗?

context.MapRoute(
    "Admin_test",
    "Admin/Tests",
    new { controller = "Contents", action = "Tests", id = UrlParameter.Optional }
);
context.MapRoute(
    "Admin_menus",
    "Admin/Menus",
    new { controller = "Contents", action = "Menus", id = UrlParameter.Optional }
);
context.MapRoute(
    "Admin_notes",
    "Admin/Pages",
    new { controller = "Contents", action = "Pages", id = UrlParameter.Optional }
);
context.MapRoute(
    "Admin_cores",
    "Admin/Cores",
    new { controller = "Cores", action = "Cores", id = UrlParameter.Optional }
);
context.MapRoute(
    "Admin_default3",
    "Admin/References",
    new { controller = "References", action = "References", id =     UrlParameter.Optional }
);
4

1 回答 1

4
context.MapRoute(
    "Admin_Contents",
    "Admin/{action}",
    new { controller = "Contents" },
    new { action = "^tests|menus|pages$" }
);

context.MapRoute(
    "Admin_Default",
    "Admin/{controller}",
    new { action = "Index" }
);

Cores然后在你的和References控制器上使用更多的 RESTful 动作命名约定,并Index用作默认动作而不是Coresand References

但在第二个路由定义中,您可能还希望允许用户在 url 中指定不同的操作:

context.MapRoute(
    "Admin_Default",
    "Admin/{controller}/{action}",
    new { action = "Index" }
);
于 2012-07-04T13:11:52.003 回答