You are on page 1of 9


Remote
Data validation
Annotations

Client Self
validation validation

protected override ValidationResult IsValid(


object value, ValidationContext validationContext)
{
PropertyInfo property =
validationContext.ObjectType
.GetProperty(OtherProperty);
if (property == null)
{
return new ValidationResult(...);
}
object objB = property.GetValue(validationContext.ObjectInstance);
if (!object.Equals(value, objB))
{
return new ValidationResult(...);
}
return null;
}

public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)


{
if (EndDate <= StartDate)
{
yield return new ValidationResult("EndDate must be greater than StartDate");
}
}

<script src=“jquery-1.4.4.min.js" type="text/javascript"></script>


<script src=“jquery.validate.min.js" type="text/javascript"></script>
<script src=“jquery.validate.unobtrusive.min.js” type="text/javascript"></script>

<appSettings>
<add key="ClientValidationEnabled" value="true"/>
<add key="UnobtrusiveJavaScriptEnabled" value="true"/>
</appSettings>

public IEnumerable<ModelClientValidationRule> GetClientValidationRules(


ModelMetadata metadata, ControllerContext context)
{
var rule = new ModelClientValidationRule();
rule.ErrorMessage = FormatErrorMessage(metadata.GetDisplayName());
rule.ValidationType = "greater";
rule.ValidationParameters.Add("other", OtherPropertyName);
yield return rule;
}

[Remote("UsernameCheck", ErrorMessage="Invalid username")]


public string Username { get; set; }

You might also like