ASP.NET Core 路由多个 PUT 动词

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

我一直在尝试在启用 Swagger 的 .NET Core 6 中创建 API,并使用

Put
动词创建两种方法。我收到一条错误消息,说两条路线都匹配相同的参数。

[HttpPut("{id}")]
public IActionResult Update(int id, [FromBody] Data data) {};

[HttpPut("{id}")]
public IActionResult ToggleActivate(int id, bool active) {};

假设第一个会回复

/SampleController/5
并允许定期更新,第二个会回复
/SampleController/5/ToggleActivate

我几乎在每一篇关于它的帖子中都看到它应该用 Route 属性装饰,但我尝试了一些变体,但似乎没有一个起作用。并得到错误:

冲突的方法/路径组合“PUT api/SampleController/{id}”

感谢任何帮助:)

c# asp.net-core url-routing
1个回答
0
投票

您可以为动作动词添加路由,即 [HttpPut("{id}/Update")], [HttpPut("{id}/ToggleActivate")]

© www.soinside.com 2019 - 2024. All rights reserved.