Restful API Post接口JSON传参为空问题求助
问题分析与解决方案
首先,这不是默认Content-Type被修改导致的,核心问题出在ASP.NET Core的参数绑定规则上:
- 当请求的Content-Type为表单格式(
application/x-www-form-urlencoded)时,框架默认会从表单数据中自动绑定参数,无需额外标记; - 当请求的Content-Type为JSON格式(
application/json)时,必须在参数前添加[FromBody]特性,框架才会从请求体的JSON数据中解析并绑定参数。
- 当请求的Content-Type为表单格式(
修正后的代码示例:
[HttpPost] public async Task<IActionResult> Post([FromBody] model dto) { ....... return View("~/Views/Home/Index.cshtml", mainViewModel); }
- 极端特殊情况:如果项目全局修改了输入格式化器配置(比如移除了JSON输入格式化器),也会导致JSON参数无法绑定,但这种场景非常少见,优先检查是否添加了
[FromBody]特性即可。
内容的提问来源于stack exchange,提问作者Programmer
相关产品推荐
相关产品推荐

