#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, при этом возникают некоторые проблемы: когда кто-то, отправляющий идентификатор больше 5, может выдать ошибку при поиске или вызвать дублирование, идеальным для них было отправить в строковом формате. Более того, пока идентификатор находится между 5 символами, это решение будет работать.
Ссылка:
https://learn.microsoft.com/pt-br/dotnet/standard/base-types/custom-numeric-format-strings