Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

288
Vistas
Pase la matriz a mvc Action a través de AJAX

Estoy tratando de pasar una matriz (o IEnumerable) de ints desde AJAX a una acción MVC y necesito un poco de ayuda.

el javascript es

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

y la acción del controlador es

 public ActionResult MyAction(IEnumerable<int> arrayOfValues )

En este momento la solicitud está formateada como

 controller/MyAction?_=1301503418429&arrayOfValues[]=491&arrayOfValues[]=368&arrayOfValues[]=235&arrayOfValues[]=437

Ya casi llego, si quito los corchetes obtengo la respuesta correcta. ¿Cómo debo pasar esa matriz a mi obtención para que el controlador pueda reconocer qué es?

Muchas gracias por su ayuda

dave

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Establezca la propiedad tradicional en verdadero antes de realizar la llamada de obtención. es decir:

 jQuery.ajaxSettings.traditional = true $.get('/controller/MyAction', { vals: arrayOfValues }, function (data) {...
over 4 years ago · Santiago Trujillo Denunciar

0

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

 var arrayOfValues = new Array(); //Populate arrayOfValues $.ajax({ type: "POST", url: "<%= Url.Action("MyAction","Controller")%>", traditional: true, data: { 'arrayOfValues': arrayOfValues } });
over 4 years ago · Santiago Trujillo Denunciar

0

Una respuesta bastante tardía, pero diferente a las que ya están presentes aquí:

Si en lugar de $.ajax desea utilizar las funciones abreviadas $.get o $.post , puede 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<int> 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<int> data) { // do stuff here }


Notas:

  • El parámetro booleano en $.param es para la propiedad traditional , que DEBE ser true para que esto funcione .
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda