Блокировка установки значения по умолчанию для непредоставленных свойств в моделях постконтроллера в. NET Core Web API - PullRequest
0 голосов
/ 17 марта 2020

я пытаюсь отключить по умолчанию? Особенность веб-API. В настоящее время у меня есть метод post в контроллере API с входным классом:

[HttpPost]
public IActionResult MyMethod(MyClass class)

public class MyClass
{
   public bool FirstProp {get;set;}
   public decimal SecondProp {get;set;}
}

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

Проблема в том, что я не отправляю этот столбец (пример json: { }) и попадаю в класс метода контроллера со значениями по умолчанию (в моем случае false для типа FirstProp и 0 для типа SecondProp ). Каков наилучший способ заблокировать этот тип сериализации / отображения для моего контроллера метода post?

1 Ответ

0 голосов
/ 18 марта 2020

Проблема в том, что я не отправляю этот столбец (пример json: { })

Если вы не передаете какое-либо свойство, проще сделать поле required:

public class MyClass
{
    [JsonProperty(Required = Required.Always)]
    public bool FirstProp { get; set; }
    [JsonProperty(Required = Required.Always)]
    public decimal SecondProp { get; set; }
}

Для asp. net core 3.x необходимо установить Microsoft.AspNetCore.Mvc.NewtonsoftJson и добавить поддержку Newtonsoft Json, как показано ниже:

services.AddControllers().AddNewtonsoftJson();

Ссылка:

{ ссылка }

...