Я ищу несколько примеров или образцов маршрутизации для следующего сценария:
Общий пример действий: {controller}/{action}/{id}
Таким образом, в сценарии поиска товаров для магазина у вас будет:
public class ProductsController: Controller
{
public ActionResult Search(string id) // id being the search string
{ ... }
}
Скажем, у вас было несколько магазинов, чтобы сделать это, и вы хотели, чтобы это было последовательно, есть ли способ получить: {category}/{controller}/{action}/{id}
Чтобы вы могли иметь определенный поиск для определенного магазина, но использовать другой метод поиска для другого магазина?
(Если вам нужно, чтобы имя магазина имело более высокий приоритет, чем сама функция в URL-адресе)
Или это сводилось бы к:
public class ProductsController: Controller
{
public ActionResult Search(int category, string id) // id being the search string
{
if(category == 1) return Category1Search();
if(category == 2) return Category2Search();
...
}
}
Это может быть не очень хороший пример, но в основном идея состоит в том, чтобы использовать одно и то же имя контроллера и, следовательно, иметь простой URL-адрес в нескольких разных сценариях, или вы застряли с требованием уникальных имен контроллеров, и нет возможности поместить их в немного разные пространства имен/каталоги?
Изменить, чтобы добавить:
Другая причина, по которой я хочу этого, заключается в том, что мне может понадобиться URL-адрес с категориями, и что определенные контроллеры будут работать только в определенных категориях.
IE:
/this/search/items/search+term ‹-- работает
/that/search/items/search+term ‹-- не будет работать, потому что контроллер поиска не разрешен.