如何在ASP.NET MVC中映射Post / [id] / Comments / [Action]?

时间:2010-12-22 16:31:37

标签: asp.net-mvc asp.net-mvc-routing

我想为我的博客应用程序创建一个RESTful API,但我不知道如何映射这样的控制器。
怎么做到呢? Post应该在URL模式中进行硬编码吗?

1 个答案:

答案 0 :(得分:5)

您可以映射这样的路线:

routes.MapRoute(
        "ShowComments", // Route name
        "Post/{id}/Comments/{action}", // URL with parameters
        new { controller = "CommentsController", action = "Show" } // Parameter defaults
        );

硬编码网址没有任何问题,除非你添加的所有内容都需要硬编码的网址,而且它们无法维护。

我的理解是你想要只通过这条路线调用的CommentsController。您不希望默认路由调用它。您可以使用IgnoreRoute

public static void RegisterRoutes(RouteCollection routes)
{
    routes.IgnoreRoute(“Comments/{action}/{id}”);
}

这将确保没有我们之前定义的路由就不会调用CommentsController。我希望那是你想要做的。