gpt4 book ai didi

c# - 在 .NET Core 2.0 中接受 API 的多个参数

转载 作者:太空宇宙 更新时间:2023-11-03 20:54:56 26 4
gpt4 key购买 nike

在这里我总是得到 null。

我如何在 .Net Core 中创建一个端点来接受两个 POCO?仅使用一个对象一切正常。

[HttpPost]
[Route("Checkout")]
public IActionResult Checkout([FromBody]Order order, [FromBody]Cart cart)
{
return Ok();
}

最佳答案

你不能有两个[FromBody]参数,the documentation对此非常清楚:

There can be at most one parameter per action decorated with [FromBody]. The ASP.NET Core MVC run-time delegates the responsibility of reading the request stream to the formatter. Once the request stream is read for a parameter, it's generally not possible to read the request stream again for binding other [FromBody] parameters.

通常,您会有一个数据传输对象 (DTO)/ViewModel (VM),其中包含您需要的所有数据:

public class CheckOutViewModel
{
public Order Order { get; set; }
public Cart Cart { get; set; }
}

然后您将使用该模型进行绑定(bind):

[HttpPost]
[Route("Checkout")]
public IActionResult Checkout([FromBody]CheckOutViewModel checkout)
{
return Ok();
}

关于c# - 在 .NET Core 2.0 中接受 API 的多个参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51507637/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com