Можете ли вы использовать основанную на соглашениях маршрутизацию для объявления маршрутов, которые принимают несколько параметров? - PullRequest
2 голосов
/ 18 апреля 2019

Что я имею в виду, у меня есть несколько маршрутов, которые принимают несколько параметров:

api/sockId/sockColor
api/sockId/sockBrand
api/sockId/sockSize

Могу ли я объявить только один маршрут для всех этих?Я представляю что-то вроде этого:

config.Routes.MapHttpRoute(
    name: "TwoArgumentGeneralRoute",
    routeTemplate: "api/{controller}/{action}/{id1}/{id2}"
);

и, конечно, это должно соответствовать моим методам действий:

public Task PostSockColor(int sockId, int sockColor);
public Task PostSockBrand(int sockId, int sockBrand);
public Task PostSockSize(int sockId, int sockSize);

1 Ответ

0 голосов
/ 22 апреля 2019

Вы должны это сделать, хотя я думаю, что имена параметров должны соответствовать маршруту.
Таким образом, вы должны сделать свой маршрут что-то вроде:

routeTemplate: "api/{controller}/{action}/{sockId}/{variant}"

Тогда ваши методы отличаются только на {action} (имя метода):

public Task PostSockColor(int sockId, int variant);
public Task PostSockBrand(int sockId, int variant);
public Task PostSockSize(int sockId, int variant);`
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...