【问题标题】:Handling posted JSON value in .NET在 .NET 中处理发布的 JSON 值
【发布时间】:2017-01-05 08:45:14
【问题描述】:

全部,

我正在开发一个使用 JSON 有效负载侦听帖子的 Web 服务。 我在 Visual Studio 2015 中创建了一个 Web 应用程序项目,它提供了一个已存根的 API 控制器。当我向 POST 处理程序发送测试时,即使我正在发送 JSON 有效负载,控制器中收到的值也是 null。

我做错了什么,在这里?

我怀疑我需要某种类型的绑定,在名为“value”的 POST 中,但由于我收到的是原始 JSON 有效负载,因此我无法真正影响绑定。

我要发送的负载

在“value”参数值中返回 null

【问题讨论】:

  • 为了将来参考,请勿发布代码图片。将代码包含为minimal reproducible example,以便可以重现问题并提供更好的答案。节省那些试图帮助您从头开始编写所有内容的人。

标签: c# json asp.net-mvc asp.net-web-api


【解决方案1】:

创建一个模型来存储正在发送的数据。

public class Payload {
    public string type { get; set;}
    public string id { get; set;}
    public long creates_at { get; set;}
    public long updated_at { get; set;}
    public string service_type { get; set;}
    public string[] topics { get; set;}
    public string url { get; set;}
    public bool active { get; set;}
    public string hub_secret { get; set;}
}

并更新控制器动作以接受有效载荷

public class ValuesController : ApiController {
    //POST api/values
    public void Post([FromBody] Payload value) {...}    
}

这还假设您使用的是默认的基于约定的路由模板api/{controller}/{id}

【讨论】:

  • 这就是我所缺少的。谢谢
【解决方案2】:

您需要将 [System.Web.Http.HttpPost] 属性放入您的操作/方法中

【讨论】:

    猜你喜欢
    • 2013-03-18
    • 1970-01-01
    • 2018-09-07
    • 2016-08-21
    • 2018-07-01
    • 2021-11-18
    • 2020-12-27
    • 2020-12-15
    • 2020-01-22
    相关资源
    最近更新 更多