如何在C# Web API请求体传递JSON数组?接收参数为空问题
解决C# Web API POST请求接收字符串数组为null的问题
你的问题出在请求体结构和接口参数不匹配:接口参数List<string> items期望直接接收一个JSON数组,但你实际发送的是一个包含items属性的JSON对象,Web API无法自动完成这种映射,导致参数为null。
下面提供两种可行的解决方式:
方式一:修改请求体为纯数组
保持接口代码不变,把POST请求体改成直接的字符串数组,去掉外层的items键:
["1034908029943809497", "1034908029943809494"]
方式二:创建实体类匹配请求体结构
如果不想修改请求体,就定义一个和请求体结构对应的实体类:
public class CancelItemsRequest { public List<string> Items { get; set; } }
然后修改接口的参数类型:
[HttpPost] [Route("")] public async Task<IHttpActionResult> CancelItems([FromBody] CancelItemsRequest request) { // 业务逻辑中使用request.Items即可获取到数组 // codes }
额外注意
发送请求时,务必确保请求头的Content-Type设置为application/json,否则模型绑定也会失败。
内容的提问来源于stack exchange,提问作者BlackCat
相关产品推荐
相关产品推荐

