通过Postman插件将值[FromBody]传递给post方法时的空值

时间:2017-04-30 07:00:07

标签: c# asp.net-web-api postman

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

 [HttpPost]
 public HttpResponseMessage Post( [FromBody]string name)
 {
     ....
 }

我使用 Postman 插件但是当发送到名称的post方法值时,总是 null ..请按照下图: enter image description here

并在Post方法中: enter image description here

为什么会这样??

2 个答案:

答案 0 :(得分:34)

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

enter image description here

答案 1 :(得分:32)

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

在标题集上

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

POST请求消息正文的正文应该是=saeed(基于您的测试值)而不是其他内容。对于未知/变量字符串,您必须对值进行URL编码,以便您不会意外地使用输入字符进行转义。

替代1

创建一个模型并使用它。

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

c#

public class CustomModel {
    public string Name {get;set;}
}

控制器方法

public HttpResponseMessage Post([FromBody]CustomModel model)

替代2

使用URI而不是邮件正文将原始字符串传递给帖子。