0

我正在从前端向我的 API 发送一个 JObject,它分为 First 和 Last childtokens,如下图所示:

示例 JObject 请求

但是,当我尝试使用以下代码时,childrendtoken 的最后一部分变为 null

var RVoucher = JsonConvert.DeserializeObject<VMReceive>(request.ToString());

这就是我在调试模式下所拥有的:

最后一个孩子为空

在这里,VMReceive 是一个视图模型,它由另一个视图模型“VMMonth”和一个 ado.net 生成的模型类“ReceiveVoucher”组成。模型代码如下:

public class VMReceive
{
    public List<VMMonth> Month { get; set; }
    public ReceiveVoucher receiveVoucher { get; set; }
}

public class VMMonth
{
    public int item_id { get; set; }
    public string item_text { get; set; }
}

public partial class ReceiveVoucher
{
    public int ReceiveVoucherId { get; set; }
    public Nullable<int> MonthId { get; set; }
    public string ReceivedBy { get; set; }
    public string Remarks { get; set; }
    public Nullable<int> ReceivedAmount { get; set; }
}

我还尝试将 [JsonProperty("")] 放在“ReceiveVoucher”模型类的每个属性上,但遇到了相同的“null”问题。

我不确定我在这里做错了什么,您对此的建议将非常有帮助。

4

1 回答 1

1

您的 JSON 属性名称不匹配。您的课程使用receiveVoucherJSON 是ReceiveAmount. 另外,你为什么首先使用JObject,这应该通过使用类名作为操作参数来工作:

public HttpResponse PostReceive([FromBody] VMReceive RVoucher, int userId)
{
    ...
}
于 2020-03-10T13:20:19.477 回答