namespace ClassValidation
{
public class Student
{
[Required(ErrorMessage = "Name is required")]
public String Firstname;
[Required(ErrorMessage = "Email is required")]
public String personalEmail;
}
}
private static void Main(string[] args)
{
Student student = new Student();
student.personalEmail = "del";
ValidationContext context = new ValidationContext(student, null, null);
List<ValidationResult> results = new List<ValidationResult>();
bool valid = Validator.TryValidateObject(student, context, results, true);
if (!valid)
{
foreach (ValidationResult vr in results)
{
Console.ForegroundColor = ConsoleColor.Red;
Console.Write(" :: {0}{1}", vr.ErrorMessage, Environment.NewLine);
}
}
}
The validator ignores the [RequiredAttribute]
on fields - it takes into an account only properties; so for purposes of Validator.Validate
- change your class to:
public class Student
{
[Required(ErrorMessage = "Name is required")]
public String Firstname { get; set; }
[Required(ErrorMessage = "Email is required")]
public String personalEmail { get; set; }
}