我正在将 PUT 请求中的 json 有效负载发送到 Web API 控制器操作。有问题的操作具有如下所示的签名:
public IHttpActionResult Post([FromBody]SaveThingRequest request)
SaveThingRequest 看起来像这样:
public class SaveThingRequest
{
public List<ElementInfo> Elements { get; set; }
public class ElementInfo
{
public List<ElementSettingInfo> Settings { get; set; }
public class ElementSettingInfo
{
public string Name { get; set; }
public string Value { get; set; }
}
}
}
我在包含具有设置的元素的请求正文中发布 json。我已经通过在控制器操作中手动反序列化并确认 JSON 具有类似于以下内容的结构来确认这一点:
{
Elements: [
{
Settings: [
{
Name: 'Name 1',
Value: 'Value 1'
},
{
Name: 'Name 2',
Value: 'Value 2'
}
]
},
{
Settings: [
{
Name: 'Name 1',
Value: 'Value 1'
},
{
Name: 'Name 2',
Value: 'Value 2'
}
]
}
]
}
但是,当 .NET 反序列化有效负载并创建 SaveThingRequest 时,我的元素已填充,但它们都具有 null 设置属性。我不知道如何解决这个问题。有人对这里可能发生的事情有任何想法吗?