validador customizado MVC + lado do cliente de validação
Eu crio um validateur personalizado no MVC 4:
public class FirstNameValidator : ValidationAttribute
{
private IRegistrationConfiguration _registrationConfiguration;
public string Category { get; set; }
public bool IsLocal { get; set; }
public FirstNameValidator()
{
_registrationConfiguration = DependencyResolver.Current.GetService<IRegistrationConfiguration>();
}
public FirstNameValidator(IRegistrationConfiguration registrationConfiguration)
{
_registrationConfiguration = registrationConfiguration;
}
protected override ValidationResult IsValid(object value, ValidationContext validationContext)
{
if (value == null)
{
return new ValidationResult("Le prénom ne doit pas être vide");
}
else
{
if(string.IsNullOrEmpty(value.ToString()))
return new ValidationResult("Le prénom ne doit pas être vide");
else if(value.ToString().Length<2)
return new ValidationResult("Le prénom doit avoir + que 2 caractères");
else if (value.ToString().Length > 30)
return new ValidationResult("Le prénom doit avoir - que 30 caractères");
}
return null;
}
}
Eu uso essa anotação de dados no meu viewModel:
public class RegistrationViewModel
{
public string Country { get; set; }
public string Civility { get; set; }
[FirstNameValidator(Category = "Registration", IsLocal = false)]
public string FirstName { get; set; }
public string LastName { get; set; }
}
Como posso fazer a validação do lado do cliente?