一、针对.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]。

转载:https://www.cnblogs.com/KQNLL/p/10322143.html

net core 中的[FromBody]的更多相关文章

  1. 在ASP.NET Core中使用Angular2,以及与Angular2的Token base身份认证

    注:下载本文提到的完整代码示例请访问:How to authorization Angular 2 app with asp.net core web api 在ASP.NET Core中使用Angu ...

  2. ASP.NET Core中如何调整HTTP请求大小的几种方式

    一.前言 一般的情况下,我们都无需调用HTTP请求的大小,只有在上传一些大文件,或者使用HTTP协议写入较大的值时(如调用WebService)才可能会调用HTTP最大请求值. 在ASP.NET Co ...

  3. 如何在ASP.NET Core中使用Azure Service Bus Queue

    原文:USING AZURE SERVICE BUS QUEUES WITH ASP.NET CORE SERVICES 作者:damienbod 译文:如何在ASP.NET Core中使用Azure ...

  4. [小技巧]EF Core中如何获取上下文中操作过的实体

    原文地址:https://www.cnblogs.com/lwqlun/p/10576443.html 作者:Lamond Lu 源代码:https://github.com/lamondlu/EFC ...

  5. 如何在ASP.NET Core中使用JSON Patch

    原文: JSON Patch With ASP.NET Core 作者:.NET Core Tutorials 译文:如何在ASP.NET Core中使用JSON Patch 地址:https://w ...

  6. 在ASP.NET Core中构建路由的5种方法

    原文链接 :https://stormpath.com/blog/routing-in-asp-net-core 在ASP.NET Core中构建路由的5种方法 原文链接 :https://storm ...

  7. Asp.Net Core中使用Swagger,你不得不踩的坑

    很久不来写blog了,换了新工作后很累,很忙.每天常态化加班到21点,偶尔还会到凌晨,加班很累,但这段时间,也确实学到了不少知识,今天这篇文章和大家分享一下:Asp.Net Core中使用Swagge ...

  8. [翻译] 如何在 ASP.Net Core 中使用 Consul 来存储配置

    [翻译] 如何在 ASP.Net Core 中使用 Consul 来存储配置 原文: USING CONSUL FOR STORING THE CONFIGURATION IN ASP.NET COR ...

  9. 【Core Swagger】.NET Core中使用swagger

    一.入门 https://www.nuget.org/packages/Swashbuckle.AspNetCore.SwaggerGen/ 1.添加核心NUGET包 Swashbuckle.AspN ...

  10. C#调用接口注意要点 socket,模拟服务器、客户端通信 在ASP.NET Core中构建路由的5种方法

    C#调用接口注意要点   在用C#调用接口的时候,遇到需要通过调用登录接口才能调用其他的接口,因为在其他的接口需要在登录的状态下保存Cookie值才能有权限调用, 所以首先需要通过调用登录接口来保存c ...

随机推荐

  1. esp8266+http (PlatformIO)

    esp8266 + http 使用esp8266发起http请求 #include <Arduino.h> #include <ESP8266WiFi.h> #include ...

  2. 增强 vw/rem 移动端适配,适配宽屏、桌面端、三折屏

    vw 和 rem 是两个神奇的 CSS 长度单位,认识它们之前,我一度认为招聘广告上的"像素级还原"是一种超能力,我想具备这种能力的人,一定专业过硬.有一双高分辨率的深邃大眼睛. ...

  3. Java反射调用get/set方法,你还在这样用?

    之前有些场景下碰到需要用到反射调用JavaBean的get/set方法时都是像以下这种拼接的方式来实现方法的调用. Article article = new Article(); article.s ...

  4. 海外模组联网非常难?不往忘了APN配置…

    ​ 除了中国之外,国外的4G信号都比较差劲. 做海外的设备,如果忽视了射频的信号质量,肯定是要吃大亏的! 所以,海外模组的联网问题,会比国内要多不少. 客户在实际应用中或多或少都会遇到: 网络相关问题 ...

  5. git 暂存区问题

    如果需要合别人的代码进来 需要暂时把自己的代码stash一下,用 git stash 放入暂存 如果需要释放出来用 git stash pop 当暂存用的越来越多,问题出现了需要清理暂存区队列,使用代 ...

  6. 加密 DB2 Universal Database 中的数据值

    在本文中,我们演示了 IBM DB2 Universal Database Version 7.2 中新的加密函数如何提供简单方式来加密敏感数据.  评论: Bruce BenfieldIBM Ric ...

  7. 如何在原生鸿蒙中进行RN的断点调试

    方式一  chrome devtools的方式 第一步:metro的方式加载bundle 先设置好原生这边的代码,然后记得打开RN服务器. 注意这个enableDebugger的值一定要设置为true ...

  8. manim边学边做--渐变生长

    本篇介绍Manim中的渐变生长类的动画. 这类动画的特点是可以清晰地展示图形的生成过程.物体的运动变化,帮助我们更好地理解抽象概念和复杂结构. 渐变生长类的动画的主要有: GrowArrow:让箭头从 ...

  9. MeteoInfo-Java解析与绘图教程(六)

    MeteoInfo-Java解析与绘图教程(六) 这一节主要说的是我们取到自动站的数据,如何通过插值,转化成格点数据,并绘制图层 //从数据库查询cimiss数据 List<Map<Str ...

  10. C/C++实例汇集(1)

    1.用代码判断一个系统是16位系统还是32位系统? 以下是几种常见编程语言中判断系统是 16 位还是 32 位的代码示例 C语言: #include <stdio.h> int main( ...