WebApi 正在接受 Json 个问题 - ZenDesk

WebApi Accepting Json Issues - ZenDesk

我有以下 Asp.Net Web Api v2 控制器 - 作为一个基本示例:

    [HttpPost]
    public IHttpActionResult TestPost([FromBody]string value)
    {       
       l.TestNotify(value, "test");     
       return Ok();
    }

当我通过一个简单的 "Hello world" 将 JSON 请求传递给控制器​​时 - 我能够毫无问题地获得该值。当我使用更复杂的JSON时,值参数returns为空。

我已经用一个使用 restsharp 的测试程序测试了相同的 JSON,它工作正常。

请求如下:

Content-Type    application/json; charset=utf-8
Accept-Encoding gzip;q=1.0,deflate;q=0.6,identity;q=0.3
Accept  */*
Content-Length  743

这是 Json 片段:

{
  "ticket": {
    "url": "",
    "id": "",
    "external_id": null,
    "FromEmail": "cody",
    "via": "Mail",
  }
}

我的猜测是它与请求差异有关,但没有什么明显的想法。阅读请求内容的其他方法或我对上述 http 请求的理解的调整将不胜感激。

不要使用 string,而是为输入类型创建 class。

所以 class 应该是这样的:

public class Ticket
{
    public string url { get; set; }
    public string id { get; set; }
    public object external_id { get; set; }
    public string FromEmail { get; set; }
    public string via { get; set; }
}

public class TicketRoot
{
    public Ticket ticket { get; set; }
}

然后使用控制器中的 TicketRoot 类型而不是 string