gpt4 book ai didi

c# - ASP.NET Core 传递 Ienumerable 对象以在 Controller 上获取操作

转载 作者:可可西里 更新时间:2023-11-01 16:10:49 26 4
gpt4 key购买 nike

我正在尝试在 ASP.NET Core 2.2 中定义一个Controller Action

棘手的部分是我更喜欢将其作为GET 端点,并且它必须接收的数据是自定义对象的集合。这是我的示例代码:

[Route("api/example")]
[ApiController]
public class ExampleController : ControllerBase
{
[HttpGet("getData")]
[ProducesResponseType(typeof(int), StatusCodes.Status200OK)]
public async Task<IActionResult> GetMarketData([FromQuery] MyObject[] queryData)
{
return this.Ok(0);
}
}

public class MyObject
{
public int A { get; set; }

public int B { get; set; }
}

我希望它能绑定(bind)到类似

的东西
http://localhost/api/example/getData/?queryData=[A=1,B=1],queryData=[A=2,B=2]

但是我似乎无法让它工作。

(向 URL 发送请求,不解析对象,我在 Controller 中收到一个空数组)

我不确定这是否是解决此问题的最佳方法,也许我需要更改绑定(bind)数据的位置?

我唯一关心的是能够接收我可以处理并返回响应的 MyObject 数组(或某种集合)。我还希望这是一个 GET 请求,因为毕竟我正在尝试查询此 API 并从中获取数据。

我知道我可以使用 [FromBody] 属性让它工作,但据我所知,GET 请求不应使用正文

非常感谢任何帮助。

最佳答案

您的 GET 请求必须按如下方式构造:

GET: /api/example/getData?queryData[0].A=1&queryData[0].B=2&queryData[1].A=3

使用 <form> 时与模型绑定(bind)非常相似:)

关于c# - ASP.NET Core 传递 Ienumerable 对象以在 Controller 上获取操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56498055/

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