如何在Insomnia/Postman中以multipart/form-data传递对象列表
ASP.NET Core中[FromForm]绑定对象列表的正确测试方式(Insomnia/Postman)
当你用[FromForm]List<ObjectDTO> ObjectDto绑定表单数据时,不能直接传递JSON数组,因为[FromForm]解析的是表单编码的键值对格式,而非JSON结构。你之前尝试的JSON写法都会被识别为单个字符串参数,无法映射到对象列表。
正确的表单参数传递格式
需要将每个对象的属性拆分为独立的键值对,键名遵循集合名[索引].属性名的格式:
| 键名 | 值 |
|---|---|
ObjectDto[0].param1 | 0 |
ObjectDto[0].param2 | 0 |
ObjectDto[1].param1 | 1 |
ObjectDto[1].param2 | 1 |
在Insomnia/Postman中的操作步骤
- 设置请求方法为
POST,请求头Content-Type保持默认的multipart/form-data或application/x-www-form-urlencoded(两者都支持这种格式) - 在表单参数区域,逐个添加上述键值对即可
为什么单个对象可以用ObjectDto.param1=1?
因为单个对象时,ASP.NET Core允许省略索引,直接用集合名.属性名的格式完成绑定,但列表场景必须指定索引来区分不同的对象。
内容的提问来源于stack exchange,提问作者Diego Oliveira
相关产品推荐
相关产品推荐

