无法通过 ajax 将数组列表发送到控制器

Unable to Send List Of Array via ajax to Controller

我有从动态创建的文本框值生成的数组列表。问题是在使用 ajax 将数据传递给控制器​​时,列表的计数显示在 jsonresult 中,但无法获得 list.Its显示 Like [object,Object],[object,Object] 就像我添加的图像一样。 我想从列表中检索数据。

我的数据绑定代码

     $('#tbl tbody tr').each(function () {
        var objlist = [];
       
        var count = 0;
        var row = $(this).closest('tr');
        var rowIndex = $(this).closest('tr').index();
        row.find('input[type=text]').each(function () {
           
            count += 1;
                var id    = $(this).attr('id');
                var value = $(this).val();
                var field = $(this).attr('name');
                objlist.push({
                    "Id": id,
                    "field": field,
                    "value": value
                });
                });
       
        tblList.push(objlist);
        });

我的Ajax发送方式

        $.ajax({
        type: 'POST',
        url: '@Url.Action("Action", "Controller")',
        data:  {tableData: tblList},
        global: false,
        dataType: "json",
        traditional: true,
        async: false,
        success: function (data) {
          ///
            }
        }
    });


修改后显示为 谢谢。

此代码已使用 Visual Studio 进行测试并且工作正常

Ajax 应该使用 application/json 内容类型

$.ajax({
        type: 'POST',
        url: '@Url.Action("Action", "Controller")',
        data: JSON.stringify(tblList),
        contentType: 'application/json; charset=utf-8',
        dataType: 'json',
        success: function (data) {
          ///
            }
        }
    });

在服务器端创建一个视图模型

public class TableData
{
public int Id {get; set;}
public string Field {get; set;}
public string Value{get; set;}
}

也改变动作header

public JsonResult InsertData([FromBody]List<TableData> tableData)

我认为这是您的代码中的一个错误,您的数组位于另一个数组中。在使用代码之前必须修复它

      objlist.push({
                    "Id": id,
                    "field": field,
                    "value": value
                });
                });
       
        tblList.push(objlist);

如果您需要 2 个阵列,请尝试此操作

public JsonResult InsertData([FromBody] List<List<TableData>> tableData)