c# - 如何将 json 对象数组发布到 web api

标签 c# jquery asp.net json asp.net-web-api

如何将 JSON 数组发布到 Web API?它适用于单个对象。

这是我尝试过的方法,但 Controller 似乎返回了 0 而不是预期的 3

这是我的 JSON:

var sc = [{
              "ID": "5",
              "Patient_ID": "271655b8-c64d-4061-86fc-0d990935316a",
              "Table_ID": "Allergy_Trns",
              "Checksum": "-475090533",
              "LastModified": "2015-01-22T20:08:52.013"
          },
          {
              "ID": "5",
              "Patient_ID": "271655b8-c64d-4061-86fc-0d990935316a",
              "Table_ID": "Allergy_Trns",
              "Checksum": "-475090533",
              "LastModified": "2015-01-22T20:08:52.013"
          },
          {
              "ID": "5",
              "Patient_ID": "271655b8-c64d-4061-86fc-0d990935316a",
              "Table_ID": "Allergy_Trns",
              "Checksum": "-475090533",
              "LastModified": "2015-01-22T20:08:52.013"
          }];           

AJAX 调用:

$.ajax({
           url: urlString,
           type: 'POST',
           data: sc,
           dataType: 'json',
           crossDomain: true,
           cache: false,
           success: function (data) { console.log(data); }
        });

网络 API Controller :

[HttpPost]
public string PostProducts([FromBody]List<SyncingControl> persons)
{
    return persons.Count.ToString(); // 0, expected 3
}

最佳答案

json 中有错误 Table_ID": "Allergy_Trns" 应该是 "Table_ID": "Allergy_Trns"

缺少双引号。

更新

您需要确保以 json 格式发送参数,如下所示:

 $.ajax({
        url: urlString,
        type: 'POST',
        data: JSON.stringify(sc),
        dataType: 'json',
        contentType: 'application/json',
        crossDomain: true,
        cache: false,
        success: function (data) { console.log(data); }
    });

注意 JSON.stringify(sc),@herbi 在指定内容类型方面也部分正确。

屏幕抓取

**Screen grab**

关于c# - 如何将 json 对象数组发布到 web api,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28106872/

相关文章:

c# - 我是否需要在每次 'foreach' 迭代时释放 COM 对象?

c# - 线程调用不一致地触发

c# - 列表成格式化字符串

c# - 将隐藏字段的值传递给 ActionLink,然后传递给 Controller

c# - 使用 Json.Net 时,无法从字符串正确反序列化异常

c# - 将数据库表行直接反序列化为 C# 对象 - 是否有这种机制?

php - 在 WAMP 中提交大文本后连接重置

javascript - 无法使用 jQuery 选择器在 IE8 中选择 HTML5 元素的子元素

javascript - $(document).ready() 使数据表无法正常工作

c# - 获取 MVC 包查询字符串