bri*_*010 26 c# deserialization asp.net-web-api
我有一个基本的post操作,适用于单个对象RecordIem.我想做的是做同样的操作,但是通过使用相同的格式发布一系列请求来批量操作.
例如:
public HttpResponseMessage Post(RecordItem request)
{
var recordItems = _recorder.RecordItem(request);
return Request.CreateResponse(HttpStatusCode.OK, recordItems);
}
Run Code Online (Sandbox Code Playgroud)
当我发布Json时:
{
Id : "7UP24fVkGOxSjrcclghe_mP2-po",
System : 1,
Environment : "Production"
}
Run Code Online (Sandbox Code Playgroud)
一切正常.我想发布Json类似于:
{
Id : "7UP24fVkGOxSjrcclghe_mP2-po",
System : 1,
Environment : "Production"
},
{
Id : "ClPE188H4TeD2LbQPeV_EzCsKVM",
System : 1,
Environment : "Production",
Label : "RestTest1"
},
{
Id : "SAWTMJzm-_AFqoNw70-gLeUzB4k",
System : 1,
Environment : "Production"
}
Run Code Online (Sandbox Code Playgroud)
并有一个类似于下面的方法选择这个:
public HttpResponseMessage Post(RecordItem[] request)
{
var recordItems = _recorder.RecordItems(request);
return Request.CreateResponse(HttpStatusCode.OK, recordItems);
}
Run Code Online (Sandbox Code Playgroud)
我已经尝试使用数组上的[FromBody]和[ModelBinding]属性并尝试使用不同的类型(List,IList,IEnumerable),但无济于事.当使用[FromBody]请求参数null时,使用[ModelBinding]列表为空.我尝试过使用这两种方法,但也无效.
我宁愿不必在我的客户端中使用循环单个帖子.
谢谢
Oli*_*ter 23
对于所有只要他们尝试的空数组,尝试这个:
var request = $.ajax({
dataType: "json",
url: "/api/users",
method: "POST",
data: { '': postData}
});
Run Code Online (Sandbox Code Playgroud)
数据必须是单个匿名对象而不是原始数组.
信息在这里找到.
Mag*_*ing 20
由于您的Post期望RecordItem[],您的请求正文中的JSON内容也应该在数组中.
您拥有的非常接近 - 尝试[]在数据周围添加一对方括号:
[{
Id : "7UP24fVkGOxSjrcclghe_mP2-po",
System : 1,
Environment : "Production"
},
{
Id : "ClPE188H4TeD2LbQPeV_EzCsKVM",
System : 1,
Environment : "Production",
Label : "RestTest1"
},
{
Id : "SAWTMJzm-_AFqoNw70-gLeUzB4k",
System : 1,
Environment : "Production"
}]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
44192 次 |
| 最近记录: |