Вот описание (ASP.NET MVC 3):
У меня есть этот параметр DataAnnotationsModelValidatorProvider.AddImplicitRequiredAttributeForValueTypes
в значении по умолчанию true
(проверено отладчиком)
В моей модели есть поле типа значения (int
, DateTime
, decimal
):
public class MyModel
{
public int SomeField { get; set; }
}
Когда я публикую пустую форму для этого действия (не указан SomeField
):
public ActionResult Submit(MyModel request)
{
if (ModelState.IsValid)
{
..
}
else
{
..
}
}
У меня нет ошибок валидации! Мне кажется логичным - значение по умолчанию для int 0
. Который является значением.
Вопросы:
Если я хочу принудительно установить это значение всегда в запросе, я должен сделать его обнуляемым и поставить [Required]
, это работает. Но для чего DataAnnotationsModelValidatorProvider.AddImplicitRequiredAttributeForValueTypes
?