I am working with jquery.DataTables () in an Mvc application with Asp.Net
I have implemented the data query through ajax, but I have an error and I can not find where it is, since according to the documentation the name of the action result that the data brings me would be badly written.
in the Html I have the following:
<div id="GridInfoProcesos" class="display">
<table id="TablaProcesos" class="display" style="width:100%">
<thead>
<tr>
<th>Id</th>
<th>Cliente</th>
<th>Proceso</th>
<th>Fecha</th>
<th>Registros Cargados</th>
<th>Registros Validados</th>
<th>Registros Erroneos</th>
<th>Estado</th>
<th>Acciones</th>
</tr>
</thead>
<tfoot>
<tr>
<th>Id</th>
<th>Cliente</th>
<th>Proceso</th>
<th>Fecha</th>
<th>Registros Cargados</th>
<th>Registros Validados</th>
<th>Registros Erroneos</th>
<th>Estado</th>
<th>Acciones</th>
</tr>
</tfoot>
</table>
</div>
The Ajax call is defined as follows:
<script src="~/Scripts/DataTables/jquery.dataTables.js"></script>
<script type="text/javascript">
$(document).ready(function () {
//Invocamos el plug-in DataTable , indicamos que el procesamiento lo realizara a través del servidor,
//indicamos el método y las columnas que se van a mostrar en nuestra tabla
$('#TablaProcesos').DataTable({
"processing": true,
"serverSide": true,
"ajax": "Proceso/GetProcesosKamCliente",
"columns": [
{ "data": "Id" },
{ "data": "Cliente" },
{ "data": "Proceso" },
{ "data": "Fecha" },
{ "data": "Cargados" },
{ "data": "Validados" },
{ "data": "Erroneos" },
{ "data": "Estado" },
{ "data": "Acciones" }
]
});
});
</script>
and finally in the controller I have the following Action Result:
public ActionResult GetProcesosKamCliente(DataTableRequest model)
{
DataTableAdapter<VM_ProcesosCliente> result = new DataTableAdapter<VM_ProcesosCliente>();
string sKamId = "1";
string sClienteId = "1";
int KamId = Convert.ToInt32(sKamId);
int ClienteId = Convert.ToInt32(sClienteId);
// obtiene los datos dessde la BD
TW.Business.Kam.Proceso ck = new Proceso();
List<VM_ProcesosCliente> lstProcesosKamCliente = ck.GetProcesosKamCliente(KamId, ClienteId);
//Obtenemos el total de registros de la tabla.
var totalRows = lstProcesosKamCliente.Count();
Func<VM_ProcesosCliente, Object> orderByFunc = null;
//El ordenamiento que vamos a utilizar por default va ser por el Id.
orderByFunc = item => item.Id;
//Dependiendo de la columna que seleccionemos indicamos si se ordena por el campo Description.
if (model.order[0]["column"].Equals("1"))
{
orderByFunc = item => item.Id;
}
//Obtenemos el valor a buscar.
var searchValue = "" + model.search["value"] + "";
var queryItem = lstProcesosKamCliente.Where(d => d.Proceso.Contains(searchValue));
List<VM_ProcesosCliente> items;
//Indicamos cual va ser la manera en que se van a ordenar los datos.
if (model.order[0]["dir"].Equals("desc"))
{
items = queryItem.OrderByDescending(orderByFunc).Skip(model.start + 1).Take(model.length).ToList();
}
else
{
items = queryItem.OrderBy(orderByFunc).Skip(model.start + 1).Take(model.length).ToList();
}
//Llenamos con información nuestro DataTableAdapter
result.Data = items;
result.Draw = model.draw;
result.RecordsTotal = totalRows;
result.RecordsFiltered = queryItem.Count();
//Regresamos la respuesta Json
return Content(JsonConvert.SerializeObject(result), "application/json");
}
The error that appears in the debugger of Crome, is 404 (not Found)
http://localhost:2911/Kam/Proceso/GetProcesosKamCliente?draw=1&columns%5B0%5D%5Bdata%5D=Id&columns%5B0%5D%5Bname%5D=&columns%5B0%5D%5Bsearchable%5D=true&columns%5B0%5D%5Borderable%5D=true&columns%5B0%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B0%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B1%5D%5Bdata%5D=Cliente&columns%5B1%5D%5Bname%5D=&columns%5B1%5D%5Bsearchable%5D=true&columns%5B1%5D%5Borderable%5D=true&columns%5B1%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B1%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B2%5D%5Bdata%5D=Proceso&columns%5B2%5D%5Bname%5D=&columns%5B2%5D%5Bsearchable%5D=true&columns%5B2%5D%5Borderable%5D=true&columns%5B2%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B2%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B3%5D%5Bdata%5D=Fecha&columns%5B3%5D%5Bname%5D=&columns%5B3%5D%5Bsearchable%5D=true&columns%5B3%5D%5Borderable%5D=true&columns%5B3%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B3%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B4%5D%5Bdata%5D=Cargados&columns%5B4%5D%5Bname%5D=&columns%5B4%5D%5Bsearchable%5D=true&columns%5B4%5D%5Borderable%5D=true&columns%5B4%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B4%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B5%5D%5Bdata%5D=Validados&columns%5B5%5D%5Bname%5D=&columns%5B5%5D%5Bsearchable%5D=true&columns%5B5%5D%5Borderable%5D=true&columns%5B5%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B5%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B6%5D%5Bdata%5D=Erroneos&columns%5B6%5D%5Bname%5D=&columns%5B6%5D%5Bsearchable%5D=true&columns%5B6%5D%5Borderable%5D=true&columns%5B6%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B6%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B7%5D%5Bdata%5D=Estado&columns%5B7%5D%5Bname%5D=&columns%5B7%5D%5Bsearchable%5D=true&columns%5B7%5D%5Borderable%5D=true&columns%5B7%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B7%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B8%5D%5Bdata%5D=Acciones&columns%5B8%5D%5Bname%5D=&columns%5B8%5D%5Bsearchable%5D=true&columns%5B8%5D%5Borderable%5D=true&columns%5B8%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B8%5D%5Bsearch%5D%5Bregex%5D=false&order%5B0%5D%5Bcolumn%5D=0&order%5B0%5D%5Bdir%5D=asc&start=0&length=10&search%5Bvalue%5D=&search%5Bregex%5D=false&_=1543849884874
Could someone please give me a hand with this topic? I have given it many laps, but I can not find a solution. Thanks for reading.