#c# #asp.net-web-api2 #asp.net-web-api-routing
#c# #asp.net-web-api2 #asp.net-web-api-routing
Вопрос:
Я имею в виду, что у меня есть несколько маршрутов, которые принимают несколько параметров:
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:
Вы должны быть в состоянии, хотя я думаю, что имена параметров должны соответствовать маршруту.
Итак, вам нужно будет сделать свой маршрут примерно таким:
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);`