Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

426
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda