如何将 List<T> 从 JS 传递到 API

问题描述

我有以下模型和控制器。我想知道如何通过 Ajax 调用为 API 传递值

型号:

Public Class Data
{
  public int ID {get;set;}
  public string Title {get;set;}
}

控制器:

[HTTPPOST]
public string UpsertItems(List<Data> Inputs)
{
 try
  {...}
 catch(Exception ex)
  {..}
}

从前端,我需要将以下数据传递给 API。

我尝试传递如下数据

var datacoll='{{"ID":1,"Title":"a"},{"ID":2,"Title":"b"}}'

如果我按原样传递变量 datacoll,我会收到 500 内部错误,如果我在控制器中传递 JSON.Stringify(datacoll),我会收到空​​值。

Ajax 方法

$.ajax({
  url: '/Test/UpsertItems',method: 'POST',dataType: 'text',contentType: 'application/json; charset=utf-8',data: datacoll,success: function (data) {..},error: function (jqXHR) {..},});

请告诉我它有什么问题。

解决方法

看起来您的数据需要是一个列表,请注意方括号。

var datacoll='[{"ID":1,"Title":"a"},{"ID":2,"Title":"b"}]'