Controller getting parameter array as null

2

I am making an AJAX request, but I can not pass array ...

My controller looks like this:

[Route("imoveis/BuscaDados/Json/Listas/ListaQuartos")]
    public JsonResult ListaQuartos(int idEstado, int idCidade, int[] idsBairros, int[] idStatus)
    {
        RealizaBuscaListas.BuscaNumQuartos(idEstado, idCidade, idsBairros.ToList(), IdsStatus);
        return Json(RealizaBuscaListas.ListaDeQuartos, JsonRequestBehavior.AllowGet);
    }

And my javascript function like this:

function preencheQuartos(Destino) {
var idEstado = 0;
var idCidade = 0;
var idsBairros = [];
idsBairros[0] = 1
idsBairros[1] = 2
var idStatus = [0];
Url = baseUrl + "imoveis/BuscaDados/Json/Listas/ListaQuartos/";
$.ajax({
    method: "GET",
    url: Url,
    data: { idEstado: idEstado, idCidade: idCidade, idsBairros: idsBairros, idStatus: idStatus },
    success: function (data) {
        $.each(data, function (i, quarto) {
            Faz coisas...
        });
    },
    error: function (data) {
        alert("Falha! Não foi possível retornar os números de quartos, tente novamente.");
    }
});
}

But when I inspect the action, I realize that the int [] idsBairros and int [] idStatus parameters always get null. Will I have to mount the entire url with a looping for each array item?

    
asked by anonymous 16.01.2018 / 14:09

1 answer

2

I was able to solve by adding traditional: true ,

$.ajax({
    method: "GET",
    url: Url,
    traditional:true,
    data: { idEstado: idEstado, idCidade: idCidade, idsBairros: idsBairros, idStatus: idStatus },
    
16.01.2018 / 14:36