Validation Attributes C# with Example
Validation attributes are used to enforce various validation rules in a declarative fashion on classes or class members. All validation attributes derive from the ValidationAttribute base class. Example: RequiredAttribute When validated through the ValidationAttribute.Validate method, this attribute will return an error if the Name property is null or contains only whitespace. public class ContactModel { [Required(ErrorMessage = "Please provide a name.")] public string Name { get; set; } } Example: StringLengthAttribute The StringLengthAttribute validates if a string is less than the maximum length of a string. It can optionally specify a minimum length. Both values are inclusive. public class ContactModel { [StringLength(20, MinimumLength = 5, ErrorMessage = "A name must be between five and twenty characters.")] public string Name { get; set; } } Example: RangeAttribute The RangeAttribute gives the maximum and minimum value for a numeric field. public class Model { [Range(0.01, 100.00,ErrorMessage = "Price must be between 0.01 and 100.00")] public decimal Price { get; set; } } Example: CustomValidationAttribute The CustomValidationAttribute class allows a custom static method to be invoked for validation. The custom method must be static ValidationResult [MethodName] (object input). public class Model { [CustomValidation(typeof(MyCustomValidation), "IsNotAnApple")] public string FavoriteFruit { get; set; } } Method declaration: public static class MyCustomValidation { public static ValidationResult IsNotAnApple(object input) { var result = ValidationResult.Success; if (input?.ToString()?.ToUpperInvariant() == "APPLE") { result = new ValidationResult("Apples are not allowed."); } return result; } }