В настоящее время я пытаюсь создать запрос POST для создания заказа.
Это отлично работает, если я поставлю свой JSON, как это:
"Id": "A2EC1753-88DC-45E1-AD26-F887E0013323",
"OrderType": "10",
"Customer": "8111345C-95E3-460F-90FB-26E62E4265C4",
"CustomerCode": "155542",
"SubTotal": 417,
"VatTotal": 0,
"Total": 417,
"Created": "2015-03-03T14:01:19.773+01:00",
"Date": "2015-03-03T14:01:19.773+01:00",
.....
Но когда я даю дату, которую отправляет мой клиент (гггг-мм-дд чч: мм: сс)
i.e.:
"Id": "A2EC1753-88DC-45E1-AD26-F887E0013323",
"OrderType": "10",
"Customer": "8111345C-95E3-460F-90FB-26E62E4265C4",
"CustomerCode": "155542",
"SubTotal": 417,
"VatTotal": 0,
"Total": 417,
"Created": "2019-04-26 16:53:39",
"Date": "2019-04-26 16:53:39",
.....
Объект в моем контроллере возвращает ноль.
Дата создания и дата имеют тип DateTime.
Что мне здесь не хватает?
Изменить:
Итак, клиент отправляет DateTime как гггг-ММ-дд ЧЧ: мм: сс.
По-видимому, это не стандартная структура json для .Net.
Спецификация имеет объекты, массивы, строки, целые числа и числа с плавающей точкой, но она не определяет стандарт для того, как выглядит дата. Формат по умолчанию, используемый Json.NET, - это стандарт ISO 8601: «2012-03-19T07: 22Z». До выпуска Json.NET 4.5 даты записывались в формате Microsoft: "/Date(1198908717056)/".15 фев. 2009
Я пытался изменить его соответственно https://stackoverflow.com/a/49978720/7639883 и ответ ниже.
public void ConfigureServices(IServiceCollection services)
{
services.AddOData();
services.AddMvc()
.AddJsonOptions(options =>
{
options.SerializerSettings.DateFormatString = "yyyy-MM-dd HH:mm:ss"; // month must be capital. otherwise it gives minutes.
});
Setting.ConnectionString = Configuration.GetConnectionString("DefaultConnection");
services.AddDbContext<IsahContext>(
options => options.UseSqlServer(Setting.ConnectionString)
);
}
Но по какой-то причине он все еще не работает.