Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 邮递员插件将值[FromBody]传递给post方法时为空值_C#_Asp.net Web Api_Postman - Fatal编程技术网

C# 邮递员插件将值[FromBody]传递给post方法时为空值

C# 邮递员插件将值[FromBody]传递给post方法时为空值,c#,asp.net-web-api,postman,C#,Asp.net Web Api,Postman,我在ASP.net web api中使用api控制器,需要通过[FromBody]类型将值传递给post方法 [HttpPost] public HttpResponseMessage Post( [FromBody]string name) { .... } 我使用Postman插件,但当发送到post方法时,name的值始终为null。。请按此图操作: 在Post方法中: 为什么会这样 不能使用json和FromBody绑定单个基本字符串,json将传输一个对象,控制

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

 [HttpPost]
 public HttpResponseMessage Post( [FromBody]string name)
 {
     ....
 }
我使用Postman插件,但当发送到post方法时,name的值始终为null。。请按此图操作:

在Post方法中:


为什么会这样

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

在你的标题集上

Content-Type: application/x-www-form-urlencoded
POST请求消息体的正文应该是
=saeed
(基于您的测试值),而不是其他内容。对于未知/可变字符串,您必须对值进行URL编码,这样您就不会意外地使用输入字符转义


备选方案1 创建一个模型并使用它

消息正文值:
{“name”:“saeee”}

#

控制器方法

public HttpResponseMessage Post([FromBody]CustomModel model)
备选方案2
使用URI而不是消息体将基本字符串传递给帖子。

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


谢谢;)备选方案1 workedI使用了一个名为“失眠”的邮递员替代方案,这里我选择了“Form URL Encoded”,它给出了指定的内容类型,但我给了参数c#参数的名称,该参数不起作用,相反,我只需插入值而不插入名称,这样请求就变成了=value而不是param=valueChange[FromBody]控制器动作的属性[FromForm]哦,伙计……这是迄今为止我找到的唯一最有效的答案。这是这个问题的最佳答案。成功了。
public HttpResponseMessage Post([FromBody]CustomModel model)