Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

387
Vistas
¿Cómo recibir datos JSON en el backend C# de WebAPI?

¿Cómo recibo datos JSON en mi backend WebAPI en C#?

Tengo el siguiente JSON enviado desde mi interfaz de JavaScript.

 { "User_Id": 1, "TotalPrice": 35, "DeliveryAddress": "At my house", "CartItems": [ { "Id": 1009, "Name": "Superman juni 2014", "Quantity": 1, "Price": 35 } ] }

Tengo estas clases:

 public class PurchaseOrder { public List<CartItem> CartItems { get; set; } public string DeliveryAddress { get; set; } public int TotalPrice { get; set; } public int User_Id { get; set; } } public class CartItem { public int Id { get; set; } public string Name { get; set; } public int Quantity { get; set; } public int Price { get; set; } }

Y mi método WebAPI:

 [System.Web.Mvc.HttpPost] public bool AddOrder(PurchaseOrder order) { // Here I will do something return true; }

Solo obtengo "nulo" como resultado de mi objeto "Orden de compra". ¿El problema puede ser que estoy usando [System.Web.Mvc.HttpPost]? También probé [System.Web.Http.HttpPost], pero obtuve el mismo resultado. // Martín

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

El Content-Type de su solicitud debe ser "application/json"

Si publica su json en un cuerpo de la solicitud, cambie la firma de un método a

 [HttpPost] public bool AddOrder([FromBody] PurchaseOrder order) { }
over 4 years ago · Santiago Trujillo Denunciar

0

Problema resuelto, faltaba la "aplicación/json". Para otras personas que tienen el mismo problema, aquí está mi función. Estoy usando Knockout.js, de ahí la palabra "yo".

 self.makePurchase = function () { var tempUserId = self.orderUserId(); var tempCartPrice = self.ShoppingCartPrice(); var tempAddress = self.orderAddress(); var tempCart = self.ShoppingCart(); var orderSave = new PurchaseSave(tempUserId, tempCartPrice, tempAddress, tempCart); var myData = ko.toJSON(orderSave); console.log(myData); $.ajax({ type: "POST", async: false, url: '/Products/AddOrder', contentType: "application/json", // Thank you Stackoverflow!!! dataType: "json", traditional: true, data: myData, error: function (xhr, textStatus, errorThrown) { console.log(xhr.responseText); console.log("Inside the error method"); }, success: function (data) { console.log("Inside the success method"); } }); }
over 4 years ago · Santiago Trujillo Denunciar

0

Cambie su implementación a esto.

 [System.Web.Http.HttpPost] public bool AddOrder([FromBody] PurchaseOrder order) { }

Para más detalles: http://www.asp.net/web-api/overview/getting-started-with-aspnet-web-api/tutorial-your-first-web-api

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda