Почему на пустое поле вместо null отправляет 0 метод post?
есть модель . Когда я делаю добавление printingEdition в базу данных, я хочу что б все поля были обязательными. При добавлении я специально не указываю поле price для проверки, при добавлении оно ж должно вернуть null и добавление прекратится, а у меня возвращает 0 и добавление проходит успешно. Подскажите почему
public class PrintingEditionModel
{
public long Id { get; set; }
[Required(ErrorMessage = Constants.Errors.TITLE_IS_REQUIRED)]
public string Title { get; set; }
[Required(ErrorMessage = Constants.Errors.DESCRIPTION_IS_REQUIRED)]
public string Description { get; set; }
[Required(ErrorMessage = Constants.Errors.PRICE_IS_REQUIRED)]
public decimal Price { get; set; }
[Required(ErrorMessage = Constants.Errors.CURRENCY_IS_REQUIRED)]
public CurrencyType Currency { get; set; }
[Required(ErrorMessage = Constants.Errors.TYPE_IS_REQUIRED)]
public PrintingType Type { get; set; }
[Required(ErrorMessage = Constants.Errors.AUTHOR_IS_REQUIRED)]
public List<long> AuthorsId { get; set; }
}
Ответы (2 шт):
Автор решения: Aziz Umarov
→ Ссылка
Поймите разницу между
public decimal Price { get; set; }
и
public decimal? Price { get; set; }
один не может иметь null а второй может. И первый по умолмолчанию 0
Автор решения: CrazyElf
→ Ссылка
Из документации: "Значение по умолчанию Decimal равно 0."
Это же ValueType, откуда там null возьмётся, если вы не сделаете сами это поле Nullable?