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

543
Views
Recibir matrices en asp.net core web api desde axios.post

Por ejemplo, tengo este código, que envía datos al controlador web api de asp.net core 6.

 const formData = new FormData(); formData.append("Id", 1); formData.append("PhotoNames", ["name1", "name2", "name3"]); formData.append("Photos", [file1, file2, file3)]; axios.post("/api/MyController", formData);

file1, file2, file3 son las fotos que recibí <input type="file"/> .

Manejé la misma solicitud, pero sin arreglos, usando este código en MyController.cs :

 public class Item { public int Id { get; set; } public string PhotoName{ get; set; } public IFormFile Photo { get; set; } } [HttpPost] public IActionResult Post([FromForm] ImageModel file) { //Using all the data from the request here }

La solicitud parecía:

 const formData = new FormData(); formData.append("Id", 1); formData.append("PhotoName", "name1"); formData.append("Photo", file1); axios.post("/api/MyController", formData);

¿Cómo puedo manejar la solicitud de publicación con matrices en ella? ¿Qué tipo de clase y función necesito usar en MyController.cs ?

about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Antes de codificar, necesita tener los siguientes conocimientos:

  • El nombre de la clave formData debe coincidir con el nombre de la propiedad del modelo.

  • La propiedad del modelo debe ser una Lista o una Matriz.

  • formData.append("PhotoNames", ["name1", "name2", "name3"]); publicar un elemento en la Lista por FormData en lugar de un elemento de lista. Necesitas una publicación como la siguiente:

     formData.append("PhotoName", "name1"); formData.append("PhotoName", "name2"); formData.append("PhotoName", "name3");

Aquí hay una demostración completa que puede seguir:

Modelo:

 public class ImageModel { public int Id { get; set; } public string[] PhotoName { get; set; } public IFormFile[] Photo { get; set; } }

Vista:

 <input type="file" multiple name="FileList" /> @section Scripts { <script src="https://unpkg.com/axios/dist/axios.min.js"></script> <script> $("input[name='FileList']").change(function () { const formData = new FormData(); $("input[name='FileList']").each(function () { var ReadyToUpload = $(this)[0].files; if (ReadyToUpload.length > 0) { $.each(ReadyToUpload, function (i, file) { formData.append("Photo", file); }); } }); formData.append("Id", 1); formData.append("PhotoName", "name1"); formData.append("PhotoName", "name2"); formData.append("PhotoName", "name3"); //formData.append("Photos", [file1, file2, file3)]; axios.post("https://localhost:44397/api/WeatherForecast", formData); }) </script> }

API:

 [ApiController] [Route("api/[controller]")] public class WeatherForecastController : ControllerBase { [HttpPost] public void Post([FromForm] ImageModel file) { //Using all the data from the request here } }

Resultado:

ingrese la descripción de la imagen aquí

about 4 years ago · Juan Pablo Isaza Report

0

intente hacer que PhotoNames y Photos formen datos en una matriz

 const formData = new FormData(); formData.append("Id", 1); formData.append("PhotoNames[]", ["name1", "name2", "name3"]); formData.append("Photos[]", [file1, file2, file3)]; axios.post("/api/MyController", formData);
about 4 years ago · Juan Pablo Isaza 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!