В настоящее время я пытаюсь принять запрос POST
к конечной точке .NET Core Web API, который принимает следующую модель:
public class OrderPost
{
[Required]
public string DeliveryStreet { get; set; }
public string DeliveryBuilding { get; set; }
[Required]
public string DeliveryCity { get; set; }
[Required]
public string DeliveryProvince { get; set; }
[Required]
public string DeliveryPostalCode { get; set; }
[Required]
public string CardName { get; set; }
[Required]
public string CardNumber { get; set; }
[Required]
public string CardExpiry { get; set; }
[Required]
public long CardCvv { get; set; }
[Required]
public List<OrderItem> OrderItems { get; set; }
}
public class OrderItem
{
public long Id { get; set; }
public string Category { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public Uri ImageUrl { get; set; }
public long Price { get; set; }
public DateTimeOffset CreatedAt { get; set; }
public DateTimeOffset UpdatedAt { get; set; }
public long Quantity { get; set; }
}
Когда я удаляю List<OrderItem>
и публикую данные безСписок звонков работает отлично.Как только я добавляю список обратно и пытаюсь POST
данных, я получаю ошибку 400 Bad Request
.У меня такое ощущение, что мне просто не хватает какого-то атрибута или чего-то в списке.JSON, который я публикую, действителен, я дважды проверил это.Любые идеи о том, что может быть причиной этого?
Вот JSON, который я POST'ing:
{
"deliveryStreet": "Test street",
"deliveryBuilding": "",
"deliveryCity": "TEst",
"deliveryProvince": "TEst",
"deliveryPostalCode": "0852",
"cardName": "Jane Jones",
"cardNumber": "4711 1000 0000 0000",
"cardExpiry": "05 / 20",
"cardCvv": "123",
"orderItems": [{
"id": 1,
"category": null,
"name": "Test",
"description": "Test test test",
"imageUrl": "http://google.com/",
"price": 625,
"createdAt": "2019-02-21T13:25:56.709192",
"updatedAt": "2019-02-21T13:25:56.709192",
"quantity": 5
}]
}
Вот конечная точка, которую я пытаюсь POST
to:
[HttpPost]
public IActionResult Post([FromBody]OrderPost data)
{
//Get the credit card type off of the number
var type = StringUtilities.GetCardTypeFromNumber(data.CardNumber);
//Check if valid type was found
if (type == "UNKNOWN")
return BadRequest("Unknown credit card type");
float total = 0;
.................
}