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

How to pass List<T> from from JS to 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"}]'