【问题标题】:Difficulty sending JSON to Web API 2难以将 JSON 发送到 Web API 2
【发布时间】:2017-02-02 10:18:29
【问题描述】:

我很难取悦 Web API 2 并试图让它在 HTTP POST 中正确处理我的 JSON。我预计 UploadRequest.RequestItems[0].ItemTypeId 的值为 1。

我的 JSON 如下所示:

claim = {
    "UploadRequests": [
        {
            "RequestItems": [
                { itemTypes: [1] }
            ]
        }
    ],
    "ClaimRef": "C/123",
    "PerilId": 1,
    "Title": 0,
    "CustomerName": "Jones",
    "Mobile": "07123123123",
    "Email": "my.email@gmail.com"
};

它倒在上面的是RequestItems。它通过了ModelState.IsValid,但没有按预期填充RequestItems。 Web API 端点上的声明如下所示:

我希望 ItemTypeId 对应于 JSON。

我的UploadRequest 模型如下所示:

namespace DocumentPortalShared.Models
{
    public class UploadRequest
    {
        public int Id { get; set; }
        public int ClaimId { get; set; }
        public string UrlId { get; set; }
        public string RequestText { get; set; }
        public RequestStatus Status { get; set; }
        public DateTime CreateDate { get; set; } = DateTime.Now;
        public DateTime? ResponseDate { get; set; }

        public Claim Claim { get; set; }

        public List<RequestItem> RequestItems { get; set; }
        public List<ResponseItem> ResponseItems { get; set; }
    }
}

BaseItem 是从其派生的RequestItem,如下所示:

namespace DocumentPortalShared.Models
{
    public abstract class BaseItem
    {
        public int Id { get; set; }
        public int UploadRequestId { get; set; }
        public int ItemTypeId { get; set; }

        public ItemType ItemType { get; set; }
    }
}

我应该如何格式化 JSON?

【问题讨论】:

  • itemTypes 对象内没有 itemTypes 数组。试试"RequestItems": [ { ItemTypeId: 1} ]
  • 是的,太好了,谢谢。现在可以使用了。

标签: json entity-framework visual-studio asp.net-web-api asp.net-web-api2


【解决方案1】:

我没有看到你在 JSON 中指定 ItemTypeID。 也许这......

claim = {
    "UploadRequests": [
        {
            "RequestItems": [
                { "itemTypeId":1 }
            ]
        }
    ],
    "ClaimRef": "C/123",
    "PerilId": 1,
    "Title": 0,
    "CustomerName": "Jones",
    "Mobile": "07123123123",
    "Email": "my.email@gmail.com"
};

如果有不止一个...

    "RequestItems": [
        { "itemTypeId":1 },{ "itemTypeId":2 },{ "itemTypeId":3 }
    ]

【讨论】:

  • 谢谢 - 我打破了我的 JSON 帮助某人樱桃 ;)
  • 呵呵呵呵。乞丐是布施的障碍吗?
猜你喜欢
  • 1970-01-01
  • 2012-12-01
  • 2017-04-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-12
  • 1970-01-01
相关资源
最近更新 更多