你能使用基于约定的路由来声明带有多个参数的路由吗?

问题描述 投票:2回答:1

我的意思是我有几条带有多个参数的路线:

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);
c# asp.net-web-api2 asp.net-web-api-routing
1个回答
0
投票

你应该能够,虽然我认为参数名称需要匹配路线。 所以你必须让你的路线像:

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);`
© www.soinside.com 2019 - 2024. All rights reserved.