ASP.NET - Error al llenar tabla con datatable jquery ajax ASP.NET

 
Vista:
sin imagen de perfil

Error al llenar tabla con datatable jquery ajax ASP.NET

Publicado por Fernando Díaz (2 intervenciones) el 08/05/2024 05:36:52
Estoy intentando llenar una tabla html a través de un datatable el cual trae la información de una base de datos. Dentro de los parámetros del ajax para traer la info de la base de datos está un dato que me permite solo extraer los registros con ese parámetro, pero al ejecutarlo mediante el clic de un botón buscar me saca un error donde dice que el parámetro es nulo, pero el parámetro es el valor seleccionado en un combo que lleno al cargar la página. Este es el código que realizo. Inicialmente el de la tabla y posteriormente el script

La tabla:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<div class="card">
        <div class="card-body">
            <h5 for="txtLista" class="form-label">Integrantes</h5>
            <table id="tabla" class="display cell-border" style="width: 100%">
                <thead>
                    <tr>
                        <th>Nombre</th>
                        <th>Fecha nacimiento</th>
                        <th>Edad</th>
                        <th>Sexo</th>
                        <th>Tipo documento</th>
                        <th>Numero documento</th>
                        <th>Editar/Eliminar</th>
                    </tr>
                </thead>
                <tbody>
                </tbody>
            </table>
        </div>
    </div>

Script:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
<script>
var tabladata;
 
$(document).ready(function () {
       $("<option>").attr({ "value": "0", "disabled": "disabled", "selected": "true" }).text("Seleccionar").appendTo("#cbbunidad");
       jQuery.ajax({
 
        url: "@Url.Action("ListarUnidad", "Mantenedor")",
        type: "GET",
        datatype: "json",
        contentType: "application/json; charset=utf-8",
        success: function (data) {
 
                if (data.data != null) {
                    $.each(data.data, function (index, item) {
                            $("<option>").attr({"value":item.uniId}).text(item.uniNombre).appendTo("#cbbunidad");
                    })
                }
        },
        error: function (error) {
                console.log(error)
        }
        });
})
 
$("#btnBuscar").on("click", function () {
 
        tabladata = $("#tabla").DataTable({
            destroy: true,
            responsive: true,
            ordering: false,
            "ajax": {
                url: "@Url.Action("ListarIntegrantesUnidad", "Mantenedor")",
                type: "POST",
                datatype: "json",
                contentType: "application/json; charset=utf-8",
                data: JSON.stringify({ idUnidad: $("#cbbunidad option:selected").val() })
            },
            "columns": [
                { "data": "intNombre" },
                { "data": "intFechaNacimiento" },
                { "data": "intEdad" },
                { "data": "intSexo" },
                { "data": "intTipoDocumento" },
                { "data": "intNumeroDocumento" },
                {
                    "defaultContent": '<button type="button" class="btn btn-primary btn-sm btn-editar"><i class="fas fa-pen"></i></button>' +
                        '<button type="button" class="btn btn-danger btn-sm btn-retirar ms-2"><i class="fas fa-trash"></i></button>',
                    "orderable": false,
                    "searchable": false,
                    "width": "90px"
                }
            ],
            "language": {
                "url": "https://cdn.datatables.net/plug-ins/2.0.2/i18n/es-ES.json",
            }
        })
})
</script>

El mensaje de error que se da es:
DataTables warning: table id=tabla - Ajax error.


El error que se muestra al final es:

El diccionario de parámetros contiene una entrada NULL para el parámetro 'uniId' del tipo que no acepta valores NULL 'System.Int32' del método 'System.Web.Mvc.JsonResult ListarIntegrantesUnidadFamiliar(Int32)' en 'CapaPresentacion.Controllers.MantenedorController'. Un parámetro opcional debe ser un tipo de referencia, un tipo que acepte valores NULL o debe declararse como parámetro opcional.
Nombre del parámetro: parameters

Soy relativamente nuevo en programación web y agradezco la ayuda que puedan prestarme.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

Error al llenar tabla con datatable jquery ajax ASP.NET

Publicado por Fernando (2 intervenciones) el 09/05/2024 15:36:45
En el controller Mantenedor la codificación es la siguiente:

1
2
3
4
5
6
7
[HttpGet]
        public JsonResult ListarIntegrantesUnidad(int uniId)
        {
            List<EntidadIntegrantesUnidad> oLista = new List<EntidadIntegrantesUnidad>();
            oLista = new CN_IntegrantesUnidad().ListarenUnidad(uniId);
            return Json(new { data = oLista }, JsonRequestBehavior.AllowGet);
        }
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar