Основной контроллер API .NET никогда не получает тело от клиента Angular - PullRequest
0 голосов
/ 15 апреля 2019

У меня есть API заказа. Здесь я пытаюсь добавить заказ от пользователя, чтобы он занял полный объект Order. Вот метод в моем контроллере:

 [HttpPost("addOrder")]
 public IActionResult addOrder([FromBody] Order order)

Вот мои модели на стороне сервера:

public class Order
{
    public string OrderId { get; set; }
    public User User { get; set; }
    public double TotalOrder { get; set; }
    public IEnumerable<OrderItem> OrderItems { get; set; }
    public Order()
    {
        OrderItems = new List<OrderItem>();
    }
}

public class OrderItem
{
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int Id { get; set; }
    public string ProductName { get; set; }
    public double Price { get; set; }
    public int Quantity { get; set; }
    [ForeignKey("CartId")]
    public Order Order { get; set; }
    public string OrderId { get; set; }
}

public class User
{
    public string firstName { get; set; }
    public string lastName { get; set; }
    public string adress { get; set; }
}

Когда я пытаюсь проверить мой метод через Почтальон со следующим телом, он достигает моего API, и весь Заказ включается в мой параметр Заказа:

{
    "OrderId": "OrderIDTest",
    "User": {
        "firstName": "FNT",
        "lastName": "LNT",
        "adress": "AT"
    },
    "TotalOrder": "999",
    "OrderItems": [
            {
                "ProductName": "Shoe 1",
                "Price": "99",
                "Quantity": 2
            },
             {
                "ProductName": "Shoe 2",
                "Price": "299",
                "Quantity": 4
            }
        ]
   }

но когда я отправляю его через свой Angular, я никогда не достигаю своих конечных точек addOrder. Вот объект, который я отправляю, распечатан в консольном журнале:

Object from Angular Client:

Мой угловой сервис:

createOrder(order: Order) {
console.log(order);
let header = new HttpHeaders({'Content-Type': 'application/json'})
return this.HttpClient.post("https://localhost:44369/api/order/addOrder", order, { headers: header });

}

Кстати, я знаю, что адрес написан неправильно

1 Ответ

1 голос
/ 15 апреля 2019

Я думаю, что проблема может быть Запрос не подписан, это один из распространенных вопросов. Вот почему запрос никогда не поступает в Api.

Пожалуйста, поделитесь запросом по сети, чтобы я мог лучше проанализировать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...