Вы можете назначить маршрут так:
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 не будет вызван без маршрута, который мы определили ранее. Я надеюсь, что это было то, что вы пытались сделать.