You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C# REST API接收Post请求返回Null问题求助

解决Web API接口返回Null的问题

你遇到的问题是因为[FromBody]绑定简单类型时的规则和你发送的JSON格式不匹配,下面给两种解决办法:

方法一:修改请求的JSON格式

当控制器方法参数是string这类简单类型时,Web API期望请求体是原始的JSON字符串值,而不是键值对对象。你需要把Postman里的请求体改成:

"test"

保持Content-Type为application/json,再发送请求就能正确返回"test"了。

方法二:创建DTO类接收参数

如果想保留当前的JSON格式(键值对对象),可以定义一个数据传输对象(DTO)来匹配请求结构:

public class TempRequest
{
    public string Temp { get; set; }
}

然后修改控制器的方法:

[Route("Test")]
[HttpPost]
public string Post([FromBody]TempRequest request)
{
    return request.Temp;
}

这样发送{"temp": "test"}就能正确获取到参数值了。

原因说明

Web API的模型绑定规则中,对于string、int这类简单类型,[FromBody]会尝试直接将请求体的原始JSON值绑定到参数上。如果发送的是包含键的JSON对象,绑定器无法找到匹配的简单类型参数,就会返回null。而使用DTO类时,绑定器会根据对象的属性名匹配JSON中的键,从而正确赋值。

内容的提问来源于stack exchange,提问作者Lukas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 20:45:57