Я пытаюсь создать пользовательскую версию RequiredAttribute для замены созданного в одном, и у меня есть он работающий на свойства, которые имеют строковые значения, но со свойствами, которые являются DateTime или целым числом, например, RequiredAttribute по умолчанию, кажется, применяется автоматически (ЕСЛИ свойство не nullable!)
Моя проблема состоит в том, что я хочу смочь указать свойство DateTime как требуется с помощью моего пользовательского необходимого блока проверки допустимости, который получает сообщение об ошибке из файла ресурсов (я не хочу должным быть говорить RequiredAttribute тип файла ресурсов и ключа каждый раз, что я применяю его. Именно поэтому я делаю пользовательский.)
Как я могу препятствовать тому, чтобы платформа применила необходимый атрибут к свойствам типа DateTime и интервал и т.д., не изменяя их на nullable.
Спасибо
Нашел! Я поместил это в файл Global.asax.cs
DataAnnotationsModelValidatorProvider.AddImplicitRequiredAttributeForValueTypes = false;
. Класс DataAnnotationsModelValidatorProvider имеет статическое свойство, называемое «AddImplicitRequiredAttributeForValueTypes», которое по умолчанию должно быть истинным, и установка его на false решила проблему.
(Для всех, кто пытается сделать то же самое, что и эта запись, я документирую ее здесь )
У меня установлена RTM и нет свойства AddImplicitRequiredAttributeForValueTypes...
см. Сообщение http://thelongwayback.wordpress.com/2010/02/25/mvc2-rc-different-assemblies-addimplicitrequiredattributeforvaluetypes/