【问题标题】:C# Web API Always getting a null value on a POSTC# Web API 在 POST 上总是得到一个空值
【发布时间】:2019-01-08 16:30:16
【问题描述】:

Screenshot of Postman

我已经看到这个问题被问了几次,但没有任何答案似乎有助于或真正适合我的情况。这是我的代码:

这是我的代码;无论我做什么,该值始终为 null,并且通过添加 [System.Web.Mvc.HttpPost] 装饰,我现在收到一条错误消息,指出该路由不支持帖子。我需要一些帮助。

[System.Web.Mvc.HttpPost]
public string Post(string value)
{
    return value;
}

这是我通过 Postman 发布的内容;我把它放在身体里:

“测试”

无论我在正文中放入什么,“值”的值始终为空。我不确定在这里做什么,似乎没有任何效果。我什至把装饰改成了 [HttpPost]。这个控制器可以正常工作,只是帖子失败得很惨。

【问题讨论】:

  • 但我认为,帖子不使用没有 [FromBody] 属性的正文 - 也许这个链接? stackoverflow.com/questions/10984040/…
  • 我已经将签名更新为public string Post([FromBody]string value) 还是一样的结果。
  • 我用 Postman 的截图更新了我的原始帖子。我同意我可能没有正确传递值或类似的东西,但我不知道哪里出错了。
  • 这是一个对象数组,属性为“value”,值为“test”。它需要只是一个字符串。尝试只发送 test 周围什么都没有,甚至没有引号。
  • 不幸的是,同样的事情,我得到了 null 的回报。我确实设置了一个断点,因此调用了正确的方法,但“value”的值仍然为空。谈论令人沮丧的:(

标签: c# api post


【解决方案1】:

试试

public ActionResult PostName([FromBody] string value)
 {
  ...
 }

并在 PostMan 的 Body type raw 中输入“值”。

{
    "value" : "hi"
}

【讨论】:

  • 不幸的是仍然为空。
【解决方案2】:

好的,所以我使用 Visual Studio 创建了一个简单的 Web API 项目,因此它具有所有默认路由等。

然后我抓住邮递员并摆弄它,直到我让它正确地发布到端点。注意 application/json 的格式头,但由于我们只发送一个字符串,所以它只是一个字符串。

现在值在断点中

【讨论】:

  • 这正是我所做的,它对我来说非常失败:(我什至尝试了一个 curl 传递一个字符串但它失败了。我不知道为什么,我没有这种类型的之前遇到麻烦。但是,我确实得到了一个解决方案,通过在代码中使用数据模型,然后传入与模型对应的json,我可以让帖子工作。所以我想这可以标记为已解决?
猜你喜欢
  • 2013-01-07
  • 2013-07-31
  • 2013-03-22
  • 2019-07-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-23
  • 2021-07-03
相关资源
最近更新 更多