Я пытаюсь сделать поле обязательным перед отправкой на сервер. Для этого я использовал аннотацию данных [Required] для проверки модели. Он работает как ожидалось для строки , но не для double.Обязательное свойство не найдено в json
По какой-то причине он не работает для double типа собственности. Вот код, у меня есть для модели:
public class ProductMetadata
{
[Required]
public string Barcode { get; set; }
[StringLength(50)]
[Required(AllowEmptyStrings = false, ErrorMessage="Please insert the product name!")]
public string Name { get; set; }
[Range(0, 5000)]
public double ShippingCostPerUnit { get; set; }
[Range(0, 10000)]
public int QuantityForFreeShipping { get; set; }
public Nullable<int> CategoryId { get; set; }
public bool IsDeleted { get; set; }
[Range(0, 1000000)]
[Required(ErrorMessage="Please provide a unit price for the product!")]
public double UnitPrice { get; set; }
}
Тело ответа является ответом JSON и ни один из требуемых полей законченных имеет следующее содержание:
{
"Message":"The request is invalid.",
"ModelState":
{"product":["Required property 'UnitPrice' not found in JSON. Path '', line 1, position 33."],
"product.Barcode":["The Barcode field is required."],
"product.Name":["Please insert the product name!"]
}
}
Я не Не понимаю, почему работает нормально для Наименование и Штрих-код, а не для UnitPrice.
Edit 1:
Если удалить [обязательно] атрибут, и я помещал вход для UnitPrice -1 я получаю соответствующее сообщение подтверждения, так почему не работает для Обязательный атрибут?
Edit 2: Запрос полезной нагрузки (также обновил ProductMetadata класс):
{IsDelete: false, CategoryId: 1}
CategoryId: 1
IsDelete: false
Любая помощь приветствуется! Благодаря!
Можете ли вы поделиться своей полезной нагрузкой - JSON? – Paritosh
@Paritosh Я отредактировал вопрос – sixfeet