I need to send to mvc controller using ajax call, a form and a two list of object jquery. I try use form.serialize but the lists arrives null and if i use JSON.stringify() the form arrives with parameters null.

var datosAEnviar = { vm: $("formUnidadProgramacionDetalle").serializeArray(), listaEventosModificar: _listaEventosModificar, listaCheck: _listaChecks }
    var lista = JSON.stringify(datosAEnviar);

    $(".tooltip").tooltip('hide');
    $.ajax({
        contentType: 'application/json',
        dataType: 'html',
        type: 'POST',
        data: lista,
        url: "ListaTrabajo/ModificarPlanificaciones2",
        success: function (response) {

        },
        error: function (data, status) {
            return false;
        }
    });

    return;

controller

public ActionResult ModificarPlanificaciones2(UnidadProgramacionViewModel vm, List<ListaEventosModificadosUProgramacion> listaEventosModificar, List<PlanificacionDatoAuxiliar> listaCheck) 
    {

        vm.DetalleViewModel.ModificarPlanificaciones(listaEventosModificar,  listaCheck);
        if (vm.DetalleViewModel.NotificacionesViewModel.HayNotificacionesError())
            return Json(vm.DetalleViewModel.NotificacionesViewModel.Notificaciones[0], JsonRequestBehavior.AllowGet);

        return PartialView("PlanificacionDetalle", vm); 
    }

1 Answers

0
Community On

Try this,please check your net tab

var formData = new FormData();
formData.append('vm',$("formUnidadProgramacionDetalle").serializeArray())
formData.append('listaEventosModificar',_listaEventosModificar)
formData.append('listaCheck',_listaChecks )


    $(".tooltip").tooltip('hide');
    $.ajax({
        contentType: 'application/json',
        dataType: 'html',
        type: 'POST',
        contentType: false,  
        processData: false,  
        data: formData ,
        url: "ListaTrabajo/ModificarPlanificaciones2",
        success: function (response) {

        },
        error: function (data, status) {
            return false;
        }
    });

    return;