DataAnnotations in ASP.NET MVC 2 - Stop MVC from applying RequiredAttribute to Non-nullable DateTime etc. properties
Im trying to create a 开发者_C百科custom version of the RequiredAttribute to replace the built in one and I've got it working for properties that have strings values, but with properties that are DateTime or integer for example, the default RequiredAttribute seems to be applied automatically (IF the property is not nullable!)
My problem is that i want to be able to specify a DateTime property as required using my custom required validator which gets the error message from a resources file (I don't want to have to tell the RequiredAttribute the type of the resource file and the key every time i apply it. That is why I'm making a custom one.)
How can i prevent the framework from applying the required attribute to properties of type DateTime and int etc without changing them to nullable.
Thanks
Found it! I put this in the Global.asax.cs file
DataAnnotationsModelValidatorProvider.AddImplicitRequiredAttributeForValueTypes = false;
The DataAnnotationsModelValidatorProvider class has a static property called "AddImplicitRequiredAttributeForValueTypes" which by default must be true, and setting it to false fixed the problem.
(For anyone trying to do the same sort of things that finds this entry, I'm documenting it here)
I have RTM installed and dont have the AddImplicitRequiredAttributeForValueTypes property...
精彩评论