Почему ответ контроллера устанавливает имена полей модели в нижний регистр? - PullRequest
1 голос
/ 02 октября 2019

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

{
  "iD_PARAM": "foo",
  "cD_PROM": "bar",
  "txT_OFFICER": "lorem",
  "cN_NEW_PARAM": "fubá",
  "iD_SITUATION": "XX",
  "iD_NEW_USER": "ipsun",
}

Это странно, потому что модель имеет все поля в верхнем случае:

public partial class MyModel {
   public long ID_PARAM { get; set; }
   public long CD_PROM { get; set; }
   public string TXT_OFFICER { get; set; }
   public int CN_NEW_PARAM { get; set; }
   public int ID_SITUATION { get; set; }     
   public int ID_NEW_USER { get; set; }  
}

Для более подробной информации, это контроллер, в котором я устанавливаю значения и ответ:

[HttpPost("receive")]

    public async Task<IActionResult> Get()
    {
      try
      {
        MyModel newParam = new MyModel ();

        newParam.ID_PARAM = "foo";
        newParam.CD_PROM = "foo";
        newParam.TXT_OFFICER = "lorem";
        newParam.CN_NEW_PARAM = "fubá";
        newParam.ID_SITUATION = "XX";
        newParam.ID_NEW_USER = "ipsun";

        return Ok(newParam);
      }
      catch (Exception ex)
      {
        return BadRequest(ex);
      }
    }

Ответы [ 2 ]

1 голос
/ 02 октября 2019

Вы должны изменить ContractResolver, просто добавьте приведенный ниже код при запуске ConfigurSservices

services.AddMvc().AddJsonOptions(options =>
        {
            options.SerializerSettings.ContractResolver = new DefaultContractResolver();
        });

См. Имена свойств в нижнем регистре от Json () в .Net core

1 голос
/ 02 октября 2019

Предполагая, что вы используете Newtonsoft Json, если вы хотите, чтобы ваши свойства Json были прописными, попробуйте украсить вашу модель с помощью JsonProperty следующим образом, чтобы Serializer не попытался вывести имя свойства:

public partial class MyModel {
  [JsonProperty("ID_PARAM")]
  public long ID_PARAM { get; set; }
  [JsonProperty("CD_PROM")]
  public long CD_PROM { get; set; }
  [JsonProperty("TXT_OFFICER")]
  public string TXT_OFFICER { get; set; }
  [JsonProperty("CN_NEW_PARAM")]
  public int CN_NEW_PARAM { get; set; }
  [JsonProperty("ID_SITUATION")]
  public int ID_SITUATION { get; set; }     
  [JsonProperty("ID_NEW_USER")]
  public int ID_NEW_USER { get; set; }  
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...