This question already has answers here:
FromBody string parameter is giving null

(14个回答)


3年前关闭。




我在ASP.net Web API中使用api Controller ,并且需要通过[FromBody]类型将值传递给post方法。
 [HttpPost]
 public HttpResponseMessage Post( [FromBody]string name)
 {
     ....
 }

我使用Postman插件,但是当发送到post方法时,name的值始终为null。
c# - 通过Postman插件将值[FromBody]传递到post方法时为空值-LMLPHP

在Post方法中:
c# - 通过Postman插件将值[FromBody]传递到post方法时为空值-LMLPHP

为什么会这样?

最佳答案

您不能使用json和FromBody绑定(bind)单个原始字符串,json将传输一个对象,并且 Controller 将依次期望一个复杂的对象(模型)。如果只想发送一个字符串,则使用url编码。

在标题集上

Content-Type: application/x-www-form-urlencoded

POST请求消息正文的正文应为=saeed(基于您的测试值),而不能为其他任何内容。对于未知/可变字符串,必须对值进行URL编码,以免出现输入字符意外转义的情况。

备用1

创建一个模型并使用它。

邮件正文值:{"name":"saeee"}
C#
public class CustomModel {
    public string Name {get;set;}
}

Controller 方式
public HttpResponseMessage Post([FromBody]CustomModel model)

备用2

使用URI而不是消息正文将原始字符串传递给您的帖子。

09-30 17:18