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

419
Views
JQuery: cómo seleccionar una subcolección y enviar a una acción MVC

Tengo un formulario web C# MVC con una jerarquía de datos bastante compleja. Necesito seleccionar una parte de esos datos, una subcolección de objetos, y enviarlos a una Acción donde puedo manipular la colección y devolver una vista parcial. Todo esto es anticuado, excepto que no puedo entender cómo seleccionar la subcolección con JQuery.

Ejemplo:

 Orders.Customers // For simplicity, Customer has the following properties public class Customer { public int Id { get; set;} public string Name { get; set;} }

En la vista de Razor, termina con elementos que se ven así:

 <input name="Order_Customers[0].Id" id="Order.Customers[0].Id" type="hidden" value="154' /> <input name="Order_Customers[0].Name" id="Order.Customers[0].Name" type="hidden" value="John Smith' /> <input name="Order_Customers[1].Id" id="Order.Customers[1].Id" type="hidden" value="176' /> <input name="Order_Customers[1].Name" id="Order.Customers[1].Name" type="hidden" value="Kendra Wallace' />

Solo necesito pasar la subcolección de Clientes a una acción que se parece a esto:

 public ActionResult AddCustomer(IList<Customer> customers) { // Do some work on the collection, add/remove members, etc. return PartialView("_Customers", customers); }

La parte que no puedo entender es la selección de JQuery. He probado variaciones de esto pero no puedo hacer que ninguna de ellas funcione:

 var customers = $("input[name^='Order_Customers']".toArray(); // ? var customers = $("input[name^='Order_Customers[]']".toArray(); // ?
over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Si las entradas seleccionadas aún no están en un formulario, cree uno:

 var $form = $('<form>');

Agregue los elementos que encontró con jQuery a ese nuevo formulario y luego cree un nuevo objeto FormData con el formulario completo:

 var formData = new FormData($form);

Luego puede pasar esos datos de formulario directamente a la URL de AJAX y MVC deserializará/vinculará los datos enviados a la lista de Clientes.

 url: '@Url.Action("UploadImage")', type: 'POST', data: formData,

También deberá cambiar el parámetro de su acción para que MVC pueda asignar las propiedades a Order.Customers o cambiar la propiedad de nombre en el HTML de esos campos para que sea como Customer[0].Name .

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!