【发布时间】:2015-10-13 02:53:30
【问题描述】:
我应该如何将对象集合发布到 WEB API Rest 服务?
这就是我在休息服务中所拥有的......
我正在使用 XmlSerializer
这里是ActionMethod
public class DevicesController : ApiController
{
[HttpPost]
public void PushToDb([FromBody] device[] devices)
{
var iCount = devices.Count();
...
...
}
这里是设备 DTO:
public class device
{
public string serialnumber { get; set; }
public string hw_part_id { get; set; }
}
这是请求:
http://localhost:50384/api/Devices/PushToDb
还有 XML 输入
<devices>
<device
<serialnumber>1</serialnumber>
<hw_part_id>A</hw_part_id>
</device>
<device>
<serialnumber>2</serialnumber>
<hw_part_id>A</hw_part_id>
</device>
</devices>
Content-Type 设置为 application/xml。
当我发送这个 Post 请求时,devices 始终为空。但是,如果我将 Action 方法更改为只接受一个设备,我就可以在 Action 方法中接收设备数据。 只有当我传递一个集合时,我才能接收到 Action 方法中的输入。 我错过了什么吗?我应该怎么做才能将集合(XML 输入)发布到 ASP.NET Rest 服务?
提前致谢。
抹布
【问题讨论】:
-
通过代码发布?您可以使用 WebClient。
-
将 DataContract 和 DataMember 属性添加到您的 DTO
-
只是检查,"
" -
您好,设备已正确关闭。我只是在问题中错过了它。我将 DataContract 和 DataMember 添加到 DTO,但仍然无法正常工作。
标签: c# asp.net rest asp.net-web-api collections