c# - 使用 MVC Web API 发布对象数组

标签 c# deserialization asp.net-web-api

我有一个基本的后期操作,适用于 RecordIem 的单个对象。 我想做的是通过使用相同格式发布一组请求来批量执行相同的操作。

例如:

public HttpResponseMessage Post(RecordItem request)
{
    var recordItems = _recorder.RecordItem(request);
    return Request.CreateResponse(HttpStatusCode.OK, recordItems);
}

当我发布 Json 时:

{
    Id : "7UP24fVkGOxSjrcclghe_mP2-po",
    System : 1,
    Environment : "Production"
}

一切正常。我想发布类似于以下内容的 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"
}

并有一个类似于下面的方法来选择它:

public HttpResponseMessage Post(RecordItem[] request)
{
    var recordItems = _recorder.RecordItems(request);
    return Request.CreateResponse(HttpStatusCode.OK, recordItems);
}

我尝试在数组上同时使用 [FromBody][ModelBinding] 属性,并尝试使用不同的类型(List、IList、IEnumerable),但没有有用。使用 [FromBody] 时,请求参数为 null,使用 [ModelBinding] 时,列表为空。我试过同时使用两者,但都不起作用。

我宁愿不必在我的客户端中求助于循环单个帖子。

谢谢

最佳答案

无论他们尝试什么都只是得到一个空数组,试试这个:

var request = $.ajax({
  dataType: "json",
  url: "/api/users",
  method: "POST",
  data: { '': postData}
});

数据必须是单个匿名对象而不是原始数组。

找到信息 here .

关于c# - 使用 MVC Web API 发布对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16042853/

相关文章:

c# - 如何使用 Web API 2 中的重置密码功能

c# - 无法加载文件或程序集 'Microsoft.Azure.ActiveDirectory.Client.Framework' 或其依赖项之一

c# - 如何将 FluentValidator 挂接到 Web API?

c# - Json反序列化,创建重复对象

java - 使用 xstream 反序列化一个 json 数组

c# - 当嵌套对象具有命名空间时如何反序列化 XML

c# - 使用 ASP.NET Web Api 时如何检查电话号码在 AspNetUsers 表中是唯一的

asp.net-mvc-4 - MVC 4.5 Web API 路由不起作用?

c# - 多线程是否等于更少的 CPU?

c# - C# 中的 MongoDb "AnyIn"过滤方法给出编译器错误