一、针对.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. 对背包dp的再探究:以 采药 和 疯狂的采药 为例

    题目链接: 01背包:采药 完全背包:疯狂的采药 关于 "总体积刚好是 V " 和 "总体积 \(\le\) V " 正常的背包推导的都是 "总体积刚 ...

  2. .NET 全功能流媒体管理控制接口平台

    前言 视频会议.在线教育.直播娱乐还是远程监控,流媒体平台的性能和稳定性直接影响着用户体验. 给大家推荐一个基于 C# 开发的全功能流媒体管理控制接口平台. 项目介绍 AKStream是一个基于 C# ...

  3. 不同团队如何实现登录系统 (just for fun)

    某一天 ceo 需要一个登录系统,找了开发团队 控制狂团队 领导点了卡布奇诺,打开了自己轻薄的 mac book, 点开 word 文档, 开始编写: 1. 项目背景 2. 名词解析 3. 数据表设计 ...

  4. VTable-Gantt:功能强大、性能优异的开源甘特图组件

    甘特图的基本概念 在项目管理中,甘特图是一种常用的工具,用于展示项目任务的时间安排和进度. 我们将甘特图拆分成以下几个部分: 左侧任务列表:显示项目的任务列表,通常在图的左侧. 顶部时间轴:显示项目的 ...

  5. 【Azure 环境】从网络包中分析出TLS加密套件信息

    问题描述 在抓取到网络包之后,如何来获取TLS信息呢?比如使用的是是么加密套件呢? 因为在应用层面,获取的错误信息非常简单: An TLS 1.2 connection request was rec ...

  6. flask+gunicorn+supervisor部署项目

    一.安装模块 pip install gunicorn gevent # 如果使用python supervisor,需要安装模块 pip install supervisor # 建议使用yum安装 ...

  7. 深度探讨Java字节代码的操纵方法

    本文为IBM工程师成富编写的<Java深度历险>的第一部分Java字节代码的操纵,像这样Java语言的深度理解和运用还没有很多文章,我们把他奉献给读者,希望读者们喜欢. AD:2013云计 ...

  8. LonEle 操作的 SQL Server 数据库(msde2000)由 20180418 版更新至 20190328 版(非官方)

    Shanghai Mitsubishi Elevator Co., Ltd(上海三菱电梯有限公司) 的 Comprehensive Elevator Monitoring System (电梯综合监控 ...

  9. 推送本地镜像到 Harbor

    1.harbor没有启动 https 我本地 安装 harbor 的时候由于没有使用证书,所以将 harbor.yml https 注释掉. 2.配置docker镜像地址 比如 我的 ip 为 192 ...

  10. PLC编程—数据类型

    CPU 型号不同,实际的有效数据类型与文中略有不同(大同小异) 数据类型概述 基本数据类型(二进制数.整数.浮点数.定时器.DATE.TOD.LTOD.CHAR.WCHAR) 复杂数据类型(DT.LD ...