Почему мой http-запрос не имеет тела после перехода на 2019 с 2017 года? - PullRequest
0 голосов
/ 27 января 2020

Итак, у меня был проект против 2017 года, с методом post в моем контроллере API, он работал просто отлично, и он получает тело json, которое я посылаю из своего представления. Однако после воссоздания проекта в версии 2019 он больше не имеет тела запроса.

My. NET Ядро версии 3.1

Это мой пост-запрос

        [HttpPost("[action]")]
        public void CreateOrder([FromBody] Order data)
        {
            bool _priceBool = false;
            if(data.Price <= 10000)
            {
                _priceBool = true;
            };
            var order = new Order
            {
                Title = data.Title,
                Date = DateTime.Now.ToString("yyyy-MM-dd"),
                Supplier = data.Supplier,
                Projekt = data.Projekt,
                Department = data.Department,
                Description = "Description rkgmrk r,gpw viuje eobin wueji, ok,wem ue wej iemgke ,lrve efke",
                Price = data.Price,
                Approval = _priceBool,
                Payment = false,
            };

            _db.Order.Add(order);
            _db.SaveChanges();

        }

Я все еще сталкиваюсь с той же проблемой после отправки запроса с почтальоном, поэтому я предполагаю, что это чисто API, вот в чем проблема.

Спасибо за помощь заранее.

Редактировать 1: Извините, я забыл чтобы включить ошибку, вот она:

System.NullReferenceException: Object reference not set to an instance of an object.

Здесь я делаю запрос, а заголовок просто базовый c json тип контента Скриншот почтальона

Редактировать 3: Это мой класс заказа:

public class Order
    {
        [Key]
        public int OrderId { get; set; }

        public string Date { get; set; }

        public string Title { get; set; }

        public string Supplier { get; set; }

        public string Projekt { get; set; }

        public string Department { get; set; }

        public string Description { get; set; }

        public int Price { get; set; }

        public bool Approval { get; set; }

        public bool Payment { get; set; }

    }

1 Ответ

0 голосов
/ 28 января 2020

Проблема заключается в том, что модель имеет свойство несоответствия.

Класс Order имеет свойство типа int для Price.

Но JSON имеет его в виде строки в соответствии с изображение, отправленное из PostMan.

Если вы измените тип свойства на строку или измените JSON для передачи числа (без кавычек в значении), оно должно работать.

...