C# 邮递员测试发送字符串到Web Api接受字符串为空

C# 邮递员测试发送字符串到Web Api接受字符串为空,c#,json,asp.net-web-api,postman,C#,Json,Asp.net Web Api,Postman,我一直在用Postman测试所有Get、Create和Update方法,其中Get什么也不传递。Create和Update传递原始json,其中包含与C类匹配的多个属性的Activity对象 因此,这个用于创建和更新的签名可以很好地工作 [HttpPost] public IHttpActionResult UpdateActivity(Activity activity) 上面的工作与邮递员传递JSON内容类型和所有属性。我在其他项目上也这样做过 然而 我试图简单地传入一个字符串,不管发生什

我一直在用Postman测试所有Get、Create和Update方法,其中Get什么也不传递。Create和Update传递原始json,其中包含与C类匹配的多个属性的Activity对象

因此,这个用于创建和更新的签名可以很好地工作

[HttpPost]
public IHttpActionResult UpdateActivity(Activity activity)
上面的工作与邮递员传递JSON内容类型和所有属性。我在其他项目上也这样做过

然而

我试图简单地传入一个字符串,不管发生什么,它都是空的

public IHttpActionResult DeleteActivity([FromBody]string Id)
{
    // delete
    var del = ActivityService.DeleteActivity(Id);
    return Ok(del);
}
邮递员我试过很多方法

http://localhost:49810/api/activityapi/deleteactivity
我已经尝试了很多基于博客和谷歌搜索的方法,例如

{ "Id" = "5808786fa3e9ec79546b3c71" } 

您的有效负载无效

更改->

 { "Id" = "5808786fa3e9ec79546b3c71" } 
至->


您的有效负载无效

更改->

 { "Id" = "5808786fa3e9ec79546b3c71" } 
至->


在正文中尝试以下内容,内容类型为application/json

{ "5808786fa3e9ec79546b3c71" }
当您这样指定它时,它将尝试反序列化为具有Id属性的复杂类型

{ "Id" : "5808786fa3e9ec79546b3c71" } 

在正文中尝试以下内容,内容类型为application/json

{ "5808786fa3e9ec79546b3c71" }
当您这样指定它时,它将尝试反序列化为具有Id属性的复杂类型

{ "Id" : "5808786fa3e9ec79546b3c71" } 

我知道这是一个较老的问题,但我想帮助那些可能有类似问题的人,因为我能够让它工作

在WebAPI控制器中,我的方法设置为

[HttpPost]
public IHttpActionResult Create([FromBody] int eventId)
{
    ....
}
为了在Postman中正确地测试它,您必须:在body中,设置为raw,确保设置了JSON application/JSON,然后添加值,如2,就是这样。。与{eventId:2}不同,后者是正确的JSON,只需输入值即可工作


所以在原始海报的例子中,在邮递员中,如果您将Body设置为raw,JSON application/JSON,那么5808786fa3e9ec79546b3c71作为它的值将起作用。

我知道这是一个较老的问题,但我想帮助那些可能有类似问题的人,因为我能够让它起作用

在WebAPI控制器中,我的方法设置为

[HttpPost]
public IHttpActionResult Create([FromBody] int eventId)
{
    ....
}
为了在Postman中正确地测试它,您必须:在body中,设置为raw,确保设置了JSON application/JSON,然后添加值,如2,就是这样。。与{eventId:2}不同,后者是正确的JSON,只需输入值即可工作


因此,在原始海报的例子中,在Postman中,如果您将Body设置为raw,JSON application/JSON,那么5808786fa3e9ec79546b3c71作为它的值将起作用。

在Postman中,确保Body设置为raw并选择JSON,然后在Body中用引号写下您的字符串。不要使用{}来包围它,因为这将使Postman中的复杂对象

确保正文设置为raw并选择json,然后在正文中用引号写下字符串。不要使用{}来包围它,因为这是为了生成一个复杂的对象

在所示的场景中,我将使用删除动词并从路由中获取id,或者您是否有特定的需要在正文中传递它?在所示的场景中,我将使用删除动词并从路由中获取id,或者你有特殊的需要在正文中传递它吗?当我读到关于添加=而不带valuename Id等的博客时,我无意中发布了这个消息。。但尝试过之后,仍然为空。当我读到关于添加=而不带valuename Id等的博客时,我无意中发布了这个消息。。但尝试过之后,仍然是空的。进入网络apiI也面临着同样的问题。刚刚把5808786fa3e9ec79546b3c71放入体内,它对我起了作用。我也在为同样的问题而挣扎。只要把5808786fa3e9ec79546b3c71放入体内,它就对我起作用了。