无法通过 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)
我有从动态创建的文本框值生成的数组列表。问题是在使用 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)