ASP.Net核心发布列表从ajax到控制器

时间:2017-08-18 17:57:36

标签: c# jquery asp.net-core-mvc asp.net-ajax

我能够从ajax向控制器发送单个复杂类型,但是无法传递列表,总是出现空值。 ***代码已更新,以显示成功通过。

public class EntityAliasTest
{
  public int IDTEMP1 { get; set; }
  public string NAMETEMP1 { get; set; }
}
[HttpPost]
public IActionResult SaveEntityAliases([FromBody] 
List<EntityAliasTest> postData)
{
  var es = ModelState.SerializeErrors();
  return Json(new[] { postData, es });
}
var aliasList = new Array();

var o = { IDTEMP1 : 0, NAMETEMP1: 'test 0' };
aliasList.push(o);

o = { IDTEMP1 : 1, NAMETEMP1: 'test 1' };
aliasList.push(o);

o = { IDTEMP1 : 2, NAMETEMP1: 'test 2' };
aliasList.push(o);

var postData= JSON.stringify(aliasList);

$.ajax({
  url: "DataAdministration/EntityAlias/SaveEntityAliases",
  type: "POST",
  cache: false,
  dataType: "json",
  contentType: "application/json; charset=utf-8",
  data: postData,
}).done(function (data) {

1 个答案:

答案 0 :(得分:1)

根据您的ajax调用,您将发送包含列表的单个对象。因此,您的控制器也会期望具有这种结构的对象。

而不是: var data = {postData:aliasList}; var data2send = JSON.stringify(data);

您可以尝试: var data2send = JSON.stringify(aliasList);

您可以使用在线json验证器来检查您是否传递了有效的json数据。您可以参考下面的链接。

https://jsonlint.com/

希望它会有所帮助。