Я хотел бы указать свои таблицы маршрутизации так, чтобы они выглядели намного более «естественными»
/Products
/Product/17
/Product/Edit/17
/Product/Create
Близко к конфигурации по умолчанию, но чтобы действие «Индекс» было быотображается в форму, кратную имени контроллера, и действие "Подробности" будет отображаться непосредственно с идентификатором элемента, следующего непосредственно за именем контроллера.
Я знаю, что могу достичь этого явноопределяя специальные сопоставления маршрутизации следующим образом:
routes.MapRoute(
"ProductsList",
"Products",
new { controller = "Product", action = "Index" }
);
routes.MapRoute(
"ProductDetails",
"Product/{id}",
new { controller = "Product", action = "Details" }
);
/*
* Ditto for all other controllers
*/
routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
Приведенный выше код является слишком многословным для моих вкусов и имеет недостаток, заключающийся в том, что каждый контроллер должен быть упомянут как минимум дважды, чтобы превалировать этот шаблон URL.
Есть ли способ обобщить это или я связан с физическим трудом в этом случае?