Любая часть вашего маршрута может быть динамической, просто превращая ее в параметр маршрута. Поэтому вместо "/ honda / {action}" выполните:
/{manufacturer}/{action}
Это даст вам параметр «производитель», который был передан вашему методу действия. Таким образом, ваша подпись метода действия теперь может быть:
public ActionResult add(string manufacturer) { }
Вам необходимо убедиться, что параметр изготовителя правильно соответствует списку производителей в базе данных - вероятно, было бы лучше кэшировать этот список для более быстрого поиска.
<ч />
Обновлено : Я имею в виду «вы должны удалить параметры по умолчанию» для маршрута по умолчанию: Если у вас есть:
route.MapRoute("Default", "/{controller}/{action}/{id}",
new { id = 1 } // <-- this is the parameter default
);
тогда этот маршрут будет соответствовать любому URL с двумя сегментами, а также любому URL с тремя сегментами. Таким образом, «/ product / add / 1» будет обрабатываться этим маршрутом, как и «/ product / add».
Если вы удалите часть "new { id = 1 }"
, она будет обрабатывать только те URL, которые выглядят как "/product/add/1".