Saltar al contenido

Pasar array a mvc Acción a través de AJAX

Por fin luego de tanto batallar ya encontramos la solución de esta dificultad que muchos de nuestros usuarios de nuestro espacio tienen. Si quieres compartir algún detalle no dudes en compartir tu información.

Solución:

Establezca la propiedad tradicional en true antes de hacer la llamada. es decir:

jQuery.ajaxSettings.traditional = true

$.get('/controller/MyAction',  vals: arrayOfValues , function (data) {... 

He tenido problemas en el pasado al intentar realizar un POST (no estoy seguro de si eso es exactamente lo que estás haciendo, pero recuerdo que al pasar un array en, tradicional debe establecerse en true.

 var arrayOfValues = new Array();

 //Populate arrayOfValues 
 $.ajax( 
      type: "POST",
      url: "<%= Url.Action("MyAction","Controller")%>",
      traditional: true,
      data:  'arrayOfValues': arrayOfValues               
 );

Bastante tarde, pero diferente respuesta a las ya presentes aquí:

si en lugar de $.ajax le gustaría usar funciones abreviadas $.get o $.postpuede pasar matrices de esta manera:

Obtener taquigrafía

var array = [1, 2, 3, 4, 5];
$.get('/controller/MyAction', $.param( data: array , true), function(data) );

// Action Method
public void MyAction(List data)

    // do stuff here


POST abreviado

var array = [1, 2, 3, 4, 5];
$.post('/controller/MyAction', $.param( data: array , true), function(data) );

// Action Method
[HttpPost]
public void MyAction(List data)

    // do stuff here

Notas:

  • El parámetro booleano en $.param es para el
    traditional propiedad, que DEBE ser true para que esto funcione.

Nos encantaría que puedieras comunicar este tutorial si te valió la pena.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *