以下代码是我为我的爱好项目编写的自定义验证属性,我想要做的是自定义此验证属性的错误消息。我已声明" ErrorMessageResourceType"和" ErrorMessageResourceName"但我不知道如何从这两个属性中提取文本。有人可以告诉我如何自定义此验证属性的错误消息或从ErrorMessageResourceType中提取文本?
public class PasswordChecker : ValidationAttribute, IClientValidatable
{
private string defaultErrorMessage = "{0} must be greater than {1} characters";
private string propertyName;
public string ErrorMessage { get; set; }
public string ErrorMessageResourceName { get; set; }
public Type ErrorMessageResourceType { get; set; }
public int MinLength { get; set; }
protected override ValidationResult IsValid(object value, ValidationContext validationContext)
{
propertyName = validationContext.MemberName;
if (value == null || value.ToString().Length < MinLength)
return new ValidationResult(ErrorMessage == null ? string.Format(defaultErrorMessage, propertyName, MinLength) : ErrorMessage);
return ValidationResult.Success;
}
public IEnumerable<ModelClientValidationRule> GetClientValidationRules(ModelMetadata metadata, ControllerContext context)
{
ModelClientValidationRule rule = new ModelClientValidationRule();
rule.ErrorMessage = ErrorMessage == null ? string.Format(defaultErrorMessage, propertyName, MinLength) : ErrorMessage;
rule.ValidationType = "passwordchecker";
rule.ValidationParameters.Add("minlength", MinLength);
return new[] { rule };
}
}