Согласно документации Microsoft, если свойство модели не имеет значения NULL, оно считается обязательным по умолчанию, поэтому нет необходимости явно добавлять атрибут [Required]
.
По умолчаниюСистема проверки обрабатывает ненулевые параметры или свойства, как если бы они имели атрибут [Обязательный].Типы значений, такие как decimal и int, не обнуляются.https://docs.microsoft.com/en-us/aspnet/core/mvc/models/validation?view=aspnetcore-2.2#required-attribute
Но это не совсем так.Допустим, у меня есть следующая модель:
public class Model
{
[Required]
public string Name { get; set; }
public int Age { get; set; }
}
Если запрос не содержит Age
в своем теле, 0 привязан к свойству Age и проверка модели не завершится неудачей.Даже с [Required]
проверка модели по-прежнему не проходит, и 0 присваивается Age
.Так как же сделать свойства с ненулевыми типами действительно «обязательными»?