Как отобразить сообщение / [id] / комментарии / [действие] в ASP.NET MVC? - PullRequest
2 голосов
/ 22 декабря 2010

Я хочу создать RESTful API для моего блогового приложения, но не могу сказать, как отобразить контроллеры следующим образом.
Как это можно сделать?Должна ли публикация быть жестко закодирована в шаблоне URL?

1 Ответ

5 голосов
/ 22 декабря 2010

Вы можете назначить маршрут так:

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

Нет ничего плохого в жестких URL-адресах, если все, что вы добавляете, нуждается в жестко закодированных URL-адресах, и они становятся недоступными.

Я понимаю, что вы хотите, чтобы CommentsController вызывался только по этому маршруту. Вы не хотите, чтобы он вызывался по маршруту по умолчанию. Для этого вы можете использовать IgnoreRoute.

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

Это гарантирует, что CommentsController не будет вызван без маршрута, который мы определили ранее. Я надеюсь, что это было то, что вы пытались сделать.

...