微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

.net core 中的[FromBody]

一、针对.net core中post类型的api注意的地方(前提是Controller上加[ApiController]特性)。认是这个。

1、如果客户端Content-Type是application/json,  api接口如果是用单个对象做参数的时候,加或者不加[FromBody]都可以正常解析参数,但是接口是用对象列表做参数时候,则必须加[FromBody],否则读取不到参数。

2、如果客户端Content-Type不是application/json,api接口必须加[FromForm],否则客户端调用接口会报400错误

3、如果加上[FromBody],客户端Content-Type不是application/json,接口会报400错误

 

二、Controller上不加[ApiController]特性),当application/json类型的时,读取的参数将全为空,而非application/json却可以正常解析,无论怎么客户端不会抛出400异常。

 

写两段测试代码Controller上加[ApiController]特性

复制代码

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


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

复制代码

 

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐