none
Metodo Post recibir una lista RRS feed

  • Pregunta

  • miren tengo este proyecto asp net core 3.0

    y tengo este metodo post que funciona de maravilla

    [HttpPost]
            public async Task<ActionResult<Country>> PostCountry(Country country)
            {
                this.context.Countries.Add(country);
                await this.context.SaveChangesAsync();
    
                return CreatedAtAction("GetCountry", new { id = country.Id }, country);
            }


    ese metodo llama a mi metodo Get 

    [HttpGet("{id}")]
            public async Task<ActionResult<Country>> GetCountry(int id)
            {
                var country = await this.context.Countries.FindAsync(id);
    
                if (country == null)
                {
                    return NotFound();
                }
    
                return country;
            }


    todo eso funciona de maravilla, pero quiero hacer otro metodo post que reciba una lista de countries, no solo un objeto sino una lista

    public async Task<ActionResult<IEnumerable<Country>>> PostCountries(List<Country> countries)
            {
                foreach (Country country in countries)
                {
                    this.context.Countries.Add(country);
                }
                await this.context.SaveChangesAsync();

                return NoContent();
            }

    pero solo obtengo u error 500 nisiquiera puedo debugerar.

    podrian apoyarme con este tema de antemano muchas gracias

     
    miércoles, 13 de mayo de 2020 8:10

Todas las respuestas

  • Hola

     

    Gracias por levantar tu consulta en los foros de MSDN. Estamos analizando su pregunta y vamos a darle seguimiento para buscar la mejor repuesta pertinente al caso.

     

    Gracias por usar los foros de MSDN.

     


    Oscar Navarro

     ____

     

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde. 

     

    Microsoft ofrece este servicio de forma gratuita, con la finalidad de ayudar a los usuarios y la ampliación de la base de datos de conocimientos relacionados con los productos y tecnologías de Microsoft.  

     

    Este contenido es proporcionado "tal cual" y no implica ninguna responsabilidad de parte de Microsoft.

    miércoles, 13 de mayo de 2020 20:13
    Moderador
  • Hola, puedes definir así tu clase parámetro de entrada de tu metodo

    public class CountriesRequest
    {
       public List<Country> Countries { get; set;}
    } 

    Y la firma de tu método quedaría 

    public async Task<ActionResult<IEnumerable<Country>>> PostCountries(CountriesRequest Countries) 
      {
                foreach (Country country in countries.Countries)
                {
                    this.context.Countries.Add(country);
                }
                await this.context.SaveChangesAsync();
    
                return NoContent();
            

    De todas formas no puedes poner un punto de ruptura en la primera línea del método? Asegura que estás en modo Debug al iniciar la depuración con F5 


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos


    miércoles, 13 de mayo de 2020 23:18
    Moderador