Estoy tratando de crear una tabla de datos usando Ajax, pero antes de crear y llenar la tabla de datos con la respuesta de ajax, en caso de éxito, envío una alerta con "response.d" que devuelve indefinido y es por eso que no estoy llenando la tabla de datos.
Texto
<script> $(document).ready(function () { $('#tabHistorialTrabajos').click(function () { $.ajax({ type: "GET", url: "/Monitoreo/GetData", data: '{}', contentType: "application/json; charset=utf-8", dataType: "json", //success: OnSuccess, success: function (response) { alert(response.d); }, failure: function (response) { alert(response.d); }, error: function (response) { alert(response.d); } }); }); }); function OnSuccess(response) { $("datatableTrabajos").DataTable( { blengthchange: true, lengthmenu: [[5, 10, -1], [5, 10, "all"]], bfilter: true, bsort: true, bpaginate: true, data: response.d, columns: [{ 'data': 'idTrabajo' }, { 'data': 'idTurnoXMaquina' }, { 'data': 'parte' }, { 'data': 'cliente' }, { 'data': 'cantidadPedido' }, { 'data': 'cantidadMerma' }, { 'data': 'cantidadTarimas' }, { 'data': 'fechaInicio' }, { 'data': 'fechaFin' }, { 'data': 'cantidadFabricado' }, { 'data': 'tiempoMuerto' }, { 'data': 'velocidad' }, { 'data': 'fabricado' } ] }); }; </script>Controlador (devuelve un JSON)
public string GetData() { ServiciosMenu serviciosMenu = new ServiciosMenu(); List<CorridaModel> listadoTrabajosXMaquina = serviciosMenu.GetHistorialTrabajosXMaquina(4); string JsonResult = JsonConvert.SerializeObject(listadoTrabajosXMaquina); return JsonResult; }Necesitamos cambiar el valor predeterminado de maxJsonLength . Aprendí de github que el valor predeterminado de este maxJsonLength es 30M.
Y sugerencia para su método en el controlador:
public JsonResult GetData() { List<TestPersonModel> list = new List<TestPersonModel>(); TestPersonModel m = null; for (int i = 0; i < 10; i++) { m = new TestPersonModel(); m.name = "John" + i; m.age = i+1; m.car = "car" + i; list.Add(m); } return Json(list); } public class TestPersonModel { public string name { get; set; } public int age { get; set; } public string car { get; set; } } En circunstancias normales, no devolvemos tipos de string , pero generalmente devolvemos tipos Json .
Dado que la longitud de la cadena de su tipo de devolución no está clara, es posible que el código anterior pueda resolver el problema actual.
Si no funciona, se recomienda consultar el enlace a continuación o proporcionar el código de la unidad más pequeña que se puede reproducir.