Tengo una lista de matriz generada a partir de valores de cuadro de texto creados dinámicamente. El problema es que al pasar datos al controlador usando ajax, el recuento de la lista se muestra en jsonresult pero no se puede obtener la lista. Se muestra como [objeto, objeto], [objeto, Objeto] como la imagen que agregué. Lo que quiero recuperar datos de la lista.
Mi código de vinculación de datos
$('#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); });Mi método de envío Ajax
$.ajax({ type: 'POST', url: '@Url.Action("Action", "Controller")', data: {tableData: tblList}, global: false, dataType: "json", traditional: true, async: false, success: function (data) { /// } } });Después de la modificación, muestra esto. Gracias.
Este código se probó con Visual Studio y funciona correctamente.
Ajax debe usar el tipo de contenido 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) { /// } } });en el lado del servidor crea un modelo de vista
public class TableData { public int Id {get; set;} public string Field {get; set;} public string Value{get; set;} }y cambie el encabezado de acción también
public JsonResult InsertData([FromBody]List<TableData> tableData)y creo que es un error en su código, tiene una matriz dentro de otra matriz. Tienes que arreglarlo antes de usar el código.
objlist.push({ "Id": id, "field": field, "value": value }); }); tblList.push(objlist);si necesita 2 matrices, intente esta acción
public JsonResult InsertData([FromBody] List<List<TableData>> tableData)