Мне интересно, как лучше всего использовать параметры типа значения (DateTime, int и т. д.), необходимые для веб-API.
Согласно this, я должен сделать свойство обнуляемым и использовать атрибут Required. Это приводит к той же проблеме, описанной здесь. Следуя совету в этом вопросе SO и используя [DataMember(IsRequired=true)]
, похоже, работает, но сообщения об ошибках, возвращаемые в ModelState, не так полезны, как использование атрибута Required. Кроме того, мне нужно иметь дело с типом, допускающим значение NULL, в контроллере, который, как мы знаем, никогда не будет нулевым, поскольку он проходит проверку модели.
Я видел, как люди описывали это как ошибку, а также видел, что это может быть решено в Web API 2. Есть ли в этом правда?
FluentValidation
, у него есть проверкаNotEmpty
, которая считает значение типов значений по умолчанию недопустимым. Его можно использовать отдельно или есть расширение, которое подключает его к проверке веб-API. - person Ben Robinson   schedule 30.10.2014