【发布时间】:2021-08-26 17:26:47
【问题描述】:
我正在将 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 时,我的元素被填充,但它们都有一个空设置属性。我不知道如何解决这个问题。有人对这里可能发生的事情有任何想法吗?
【问题讨论】:
-
将您的有效负载粘贴到问题中。 Nm,我瞎了。
-
我遇到了同样的问题。然而,问题是别的。就我而言,未序列化的属性没有默认构造函数。
标签: json asp.net-web-api frombodyattribute