关于c#:通过Postman插件将值[FromBody]传递到post方法时为空值

Null value when Pass values [FromBody] to post method by Postman plugin

本问题已经有最佳答案,请猛点这里访问。

我在ASP.net Web API中使用api控制器,我需要通过[FromBody]类型将值传递给post方法。

1
2
3
4
5
 [HttpPost]
 public HttpResponseMessage Post( [FromBody]string name)
 {
     ....
 }

我使用Postman插件,但是当发送到post方法时,name的值始终为null。
enter image description here

在Post方法中:
enter image description here

为什么会这样?


使用原始json发布字符串,并且不要忘记双引号。

enter image description here


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

在标题集上

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

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

备用1

创建一个模型并使用它。

邮件正文值:{"name":"saeee"}

C#

1
2
3
public class CustomModel {
    public string Name {get;set;}
}

控制器方式

1
public HttpResponseMessage Post([FromBody]CustomModel model)

备用2

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