Моя проблема заключается в том, что когда я отправляю любое целочисленное значение, начинающееся с нуля (012345) в теле полезной нагрузки, в веб-API C #, полученное значение не имеет первой цифры (12345). он игнорирует ноль. как заставить API получать необработанные данные?
[HttpPost]
public void insertdata([FromBody]Model model)
{
// model.id=1234
}
Полезная нагрузка
{id:01234}
4 ответа
Целое число не может иметь начальных нулей, как упоминалось @Richard в комментариях.
Вместо этого вы должны использовать в своей модели строку.
public class YourModel {
public string id {get;set;}
}
[HttpPost]
public void insertdata(YourModel model)
{
model.id=01234
}
Я думаю, это зависит от DataType свойства id в вашем объекте модели.
Если id был строкой, например, начальные нули, как в 01234, будут сохранены. При условии, что ваше требование не особо ограничивает вас, чтобы сделать свойство id
int
public class Model
{
public string id { get; set;}
...
}
Отправьте любое целочисленное значение в виде строки «012345» - payload {id: «01234»}. Другой способ достичь этого - использовать string.PadLeft - model.Id.ToString (), PadLeft (5, «0»);
Доброе утро, дружище,
Следуйте примеру, который я сделал в POC, при этом есть некоторые проблемы: когда кто-то, отправляющий идентификатор больше 5, может выдать ошибку при поиске или вызвать дублирование, идеальным было для них отправить в строковом формате. Более того, пока идентификатор находится между 5 символами, это решение будет работать.
Справка:
https://docs.microsoft.com/pt-br/dotnet/standard/base-types/custom-numeric-format-strings
Похожие вопросы
Новые вопросы
c#
C# (произносится как «see Sharp») — это высокоуровневый мультипарадигменный язык программирования со статической типизацией, разработанный Microsoft. Код C# обычно нацелен на семейство инструментов и сред выполнения Microsoft .NET, которое включает в себя .NET, .NET Framework, .NET MAUI и Xamarin среди прочих. Используйте этот тег для ответов на вопросы о коде, написанном на C#, или о формальной спецификации C#.