Я хотел бы указать свои таблицы маршрутизации так, чтобы они казались более" естественными "
/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 }
);
Приведенный выше код слишком подробен f или мои вкусы, и имеет недостаток в том, что каждый контроллер нужно упомянуть как минимум дважды, чтобы повсеместно применить этот шаблон URL.
Есть ли способ обобщить это, или в данном случае я вынужден заниматься физическим трудом?