【发布时间】:2020-09-28 19:19:14
【问题描述】:
在创建新的 Web API 项目时,您可能会想出需要 url 参数、正文值和查询的控制器端点,尤其是对于 PATCH 路由。
假设您想通过更改产品数量来更新购物篮。端点需要来自 url 的 order id 和 product id 以及来自 body 的金额。
[HttpPatch("{orderId}/products/{productId}")]
public async Task<IActionResult> Update(Dto dto)
{
return Ok(dto);
}
匹配的Dto 应该包含整个请求中的值
public class Dto
{
[FromRoute]
public int OrderId { get; set; }
[FromRoute]
public int ProductId { get; set; }
[FromBody]
public int Amount { get; set; }
}
当通过PATCH调用API时https://localhost:5001/orders/123/products/456Amount是正确的,但两个ID参数都是0。我认为它们不会被设置,将有它们的默认值。
我错过了什么吗?
【问题讨论】:
标签: c# .net asp.net-core .net-core asp.net-core-webapi