C # WebAPI не может привязать исходное целочисленное значение к модели из тела?

#c# #asp.net-mvc #webapi

#c# #asp.net-mvc #webapi

Вопрос:

Моя проблема заключается в том, что когда я отправляю любое целочисленное значение, начинающееся с нуля (012345) в теле полезной нагрузки, в C # web API, полученное значение не имеет первой цифры (12345). он игнорирует ноль. как заставить API получать необработанные данные?

 [HttpPost]
    public void insertdata([FromBody]Model model)
    {
     // model.id=1234    
    }
  

полезная нагрузка

 {id:01234}
  

Комментарии:

1. целое число не имеет начальных нулей, используйте строку

2. @LukaszBalazy [из тела] не помогает

3. Вам придется использовать свойство string для того же вместо int, чтобы иметь начальный ноль

Ответ №1:

Целое число не может иметь начальных нулей, как указано @Richard в комментариях

Вместо этого вы должны использовать string в своей модели.

 public class YourModel {
   public string id {get;set;}
}

[HttpPost]
public void insertdata(YourModel model)
{
   model.id="01234";    
}
  

Ответ №2:

Я думаю, это зависит от типа данных свойства id в вашем объекте модели.

Если id был строкой, например, начальные нули, как в 01234, будут сохранены. При условии, что ваше требование не особенно ограничивает вас, чтобы сделать id свойство int

 public class Model 
{

public string id { get; set;}
...

}
  

Ответ №3:

Отправьте любое целочисленное значение в виде строки «012345» — полезная нагрузка {id: «01234»}. Другой способ достичь этого — использовать string .PadLeft — model.Id.toString(),PadLeft(5,»0″);

Ответ №4:

Консоль Poc visual studio c #

Доброе утро, приятель,

Следуйте примеру, который я сделал в POC, при этом возникают некоторые проблемы: когда кто-то, отправляющий идентификатор больше 5, может выдать ошибку при поиске или вызвать дублирование, идеальным для них было отправить в строковом формате. Более того, пока идентификатор находится между 5 символами, это решение будет работать.

Ссылка:

https://learn.microsoft.com/pt-br/dotnet/standard/base-types/custom-numeric-format-strings

https://learn.microsoft.com/pt-br/dotnet/standard/base-types/standard-numeric-format-strings#DFormatString