码迷,mamicode.com
首页 > Web开发 > 详细

.net core 中的[FromBody]

时间:2019-01-25 23:20:54      阅读:2552      评论:0      收藏:0      [点我收藏+]

标签:返回   person   http   综合   对象   info   type   图片   ati   

.net core中post数据时候,有时候需要加[FromBody],有时候却不需要,来研究下什么个情况。

写两段测试代码

     [HttpPost("PostList")]
        public void PostList([FromBody]List<Person> person)
        {
            List<Person> personObj = person;
        }


        [HttpPost("PostSingle")]
        public void PostSingle(Person person)
        {
            Person personObj = person;
        }

 

技术分享图片

先测试提交单个对象,如果选择文本方式提交json个数据,直接抛出400错误。

接着Content-Type改成application/json,可以看到提交成功了。

技术分享图片

断点到代码,数据读取正常。

技术分享图片

接着我们加上[FromBody]试下

技术分享图片

 

技术分享图片

 可以看到同样有数据,说明post单个对象的json数据时候,加不加[FromBody]都可以正常读取参数。

接着我们来看下列表内容的json是否有区别。

同样,当我们设置Content-Type如果不为application/json时,提交是进不了接口,客户端报400错误。

首先看加[FromBody]

技术分享图片

 

技术分享图片

 结果显然是正确的!

再看不[FromBody]

技术分享图片

技术分享图片

客户端可以提交数据,返回200,但是接口中获取的数据却为空了!说明读取列表时候必须加[FromBody]

综合上述,客户端如果是提交json数据时候建议都加上[FromBody]。

如果客户端提交的数据Content-Type如果不为application/json时,会报错,如果要解决报错,需要在接口上加上[FromForm]。

.net core 中的[FromBody]

标签:返回   person   http   综合   对象   info   type   图片   ati   

原文地址:https://www.cnblogs.com/KQNLL/p/10322143.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!