How do Data Annotations work?

后端 未结 4 1264
星月不相逢
星月不相逢 2020-12-08 15:08

I use Data Annotations in my ASP.NET MVC 3 project to validate the model. These are extremely convenient but currently they are magic to me. I read that data annotations do

相关标签:
4条回答
  • 2020-12-08 15:33

    because you are not checking if the model is valid... the data notation checks the validity of the model. then you will get your error.

    0 讨论(0)
  • 2020-12-08 15:35

    C# provides a mechanism for defining declarative tags, called attributes, which you can place on certain entities in your source code to specify additional information. The information that attributes contain can be retrieved at run time through reflection.

    https://msdn.microsoft.com/en-us/library/aa288059(v=vs.71).aspx

    Here are three articles to help expand your knowledge of how attributes work. The last being the least important if you understand how to use them. The article is for silverlight but is still applicable to the topic at hand.

    Introduction to Attributes

    Attributes

    DataTypeAttributes

    Using Data Annotations w/ silverlight

    0 讨论(0)
  • 2020-12-08 15:44

    How then does MVC know to add validation errors to the model state dictionary?

    ModelValidatorProvider, more specifically, DataAnnotationsModelValidatorProvider. This is called by MVC.

    0 讨论(0)
  • 2020-12-08 15:49

    You never call anything to validate the properties. The validation doesn't happen magically on its own. from http://msdn.microsoft.com/en-us/library/dd901590%28v=vs.95%29.aspx

    Manually Validating Values

    When you do not use the DataGrid control to provide the interface for editing data, the validation attributes are not automatically applied. However, you can manually apply the validation test by using the Validator class. You can call the ValidateProperty method on the set accessor of a property to check the value against the validation attributes for the property. You must also set bothValidatesOnExceptions and NotifyOnValidationError properties to true when data binding to receive validation exceptions from validation attributes. For an example of manually applying validation, see the Data Binding Example below.

    0 讨论(0)
提交回复
热议问题