¿Cómo enviar un parámetro de tipo objecto a un método get?

publicado por: Anonymous

Tengo el siguiente método[httpGet], y quisiera probarlo corriéndolo en el navegador Web, pero al recibir un parámetro de tipo objeto, no se como formar la URL, por ejemplo, cuando recibo 2 parámetros string formo la URL así:

localhost:53235/api/Values/InsertarTienda?Nombre=blabla&Direccion=blabla

pero no tengo idea de como formarlo cuando es objecto, alguien me pudiera decir cómo formar mi URL para poder probar mi función.

 [HttpGet]
        public async Task<Respuesta> InsertarTienda(tiendas tienda)
        {
            var re = new Respuesta();
            try
            {
                DateTime tiempo = new DateTime();
                var f = new tiendas();
                tiempo = System.DateTime.Now.AddDays(-1);
                var tiend= new tiendas
                {
                    Nombre = f.Nombre,
                    Calle = f.Calle,
                    NumeroExt = f.NumeroExt,
                    NumeroInt = f.NumeroInt,
                    Estado = f.Estado,
                    Municipio = f.Municipio,
                    Ciudad = f.Ciudad,
                    Colonia = f.Colonia,
                    CodigoPostal = f.CodigoPostal,
                    Pais = f.Pais,
                    Tel = f.Tel,
                    Iva = f.Iva
                };

                Context.tiendas.Add(tiend);
                await Context.SaveChangesAsync();
                re.Estatus = true;
            }
            catch (Exception ex)
            {
                re.Error = ex;
                re.Estatus = false;
            }
            return re;
        }

solución

Puedes formarlo enviando parametros que tengan el nombre de las propiedades del objeto. Por ejemplo si tienes el siguiente objeto:

public class Persona
{
   public string Nombre {get;set;}
   public string Apellido {get;set;}
   public int Edad {get;set;}
}

Y en action tienes:

public ActionResult InsertarPersona(Persona persona)
{
 // codigo...
}

Simplemente envias los parametros como si fuera una consulta normal a lo tipo get:

localhost/aplication/personas/insertarpersona?nombre=einer&apellido=einer2&edad=99

A esto se le llaman binding, donde el motor de bindeo de MVC se encargar de crear una instancia del objeto con los respectivos valores que tengan el mismo nombre tanto en la url como las propidades objeto especificado como parametro. Esto tambien funcion igual para el metodo http POST

Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *