首页新闻找找看学习计划

Postman调用POST接口传入List<People>实体类集合参数怎么传?

0
[已解决问题] 解决于 2019-03-02 14:54

有这么一个接口:

 public string PostPeoples([FromBody]List<People> ps)
        {
            string str = "";
            foreach (var item in ps)
            {
                str += item.Name+",";
            }
            return str.Trim(',');
        }

这个接口比较简单,就是为了测试传入 实体类 集合 ,但是我通过postman进行调用的时候总是提示 ps 是null,也就是没有传入值进去。

这是我在postman中进行调用的数据,不太明白哪里出了问题,望指教

LiuDanK的主页 LiuDanK | 初学一级 | 园豆:29
提问于:2019-03-01 17:00
< >
分享
最佳答案
0

因为你postman选的raw,这个是没有kv 键值对关系的,所以你的参数ps是null。

改用form-data,参数ps应该是个Count为0的List。

可以用Request["ps"]先接到字符串,然后再用Json.Net或者其他 去反序列化。

奖励园豆:5
从今天开始 | 菜鸟二级 |园豆:297 | 2019-03-02 11:06

关于键值对的问题,我在用raw传单个的实体类对象的时候使用键值对是没有问题的。
我刚刚解决了这个问题,解决方式如下

LiuDanK | 园豆:29 (初学一级) | 2019-03-02 14:52

@LiuDanK: 这个还真没用过... 还可以这样。 这样比起来 我那种方法麻烦不少..

从今天开始 | 园豆:297 (菜鸟二级) | 2019-03-02 16:12
其他回答(2)
0

看下你的ajax请求部分,是不是类似这个格式:
$.ajax({
url: '/api/people',
type: 'POST',
contentType: 'application/x-www-form-urlencoded; charset=utf-8',
data: '=' + encodeURIComponent(request.term),
success: function (data) {
response(data.d);
},
error: function (result) {
alert('Error');
}
});

接口方法也可以改下,一行代码就行了:return string.Join(",", ps.Select(x => x.Name));

三人乐乐 | 园豆:3150 (老鸟四级) | 2019-03-02 10:06

我刚刚解决了这个问题,解决方式如下

支持(0) 反对(0) LiuDanK | 园豆:29 (初学一级) | 2019-03-02 14:53
0

我刚刚解决了这个问题,解决方式如下

LiuDanK | 园豆:29 (初学一级) | 2019-03-02 14:53
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册