【问题标题】: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
【问题讨论】:
标签:
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] 属性放入您的操作/方法中