c# code
[AttributeUsage(AttributeTargets.Property, AllowMultiple = false)]
public class IsTrueAttribute : ValidationAttribute, IClientValidatable
{
public override bool IsValid(object value)
{
if (value == null)
return false;
if (!(value is bool))
throw new InvalidOperationException(this.GetType() + " can only be used on boolean properties.");
return (bool)value;
}
public IEnumerable<ModelClientValidationRule> GetClientValidationRules(ModelMetadata metadata, ControllerContext context)
{
yield return new ModelClientValidationRule
{
ValidationType = "istrue",
ErrorMessage = base.ErrorMessageString
};
}
}
ui code.
jQuery.validator.addMethod("istrue", function (value, element) {
return element.checked;
});
jQuery.validator.unobtrusive.adapters.addBool("istrue");