Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

295
Views
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 answers
Answer question

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!