csharp 验证属性,用于确保输入的最小位数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了csharp 验证属性,用于确保输入的最小位数相关的知识,希望对你有一定的参考价值。
public class MinDigitsIncluded : ValidationAttribute, IClientValidatable
{
private const string DefaultErrorMessage = "{0} must contain at least {1} digits.";
public int MinDigits { get; private set; }
public MinDigitsIncluded(int minDigits) : base(DefaultErrorMessage)
{
MinDigits = minDigits;
}
public override string FormatErrorMessage(string name)
{
return string.Format(ErrorMessageString, name, MinDigits);
}
protected override ValidationResult IsValid(object value, ValidationContext validationContext)
{
var val = value as string;
if (val != null)
{
var invalid = val.ToCharArray().Count(IsDigit) < MinDigits;
if (!invalid)
{
return ValidationResult.Success;
}
}
return new ValidationResult(FormatErrorMessage(validationContext.DisplayName));
}
public IEnumerable<ModelClientValidationRule> GetClientValidationRules(ModelMetadata metadata, ControllerContext context)
{
var clientValidationRule = new ModelClientValidationRule()
{
ErrorMessage = FormatErrorMessage(metadata.GetDisplayName()),
ValidationType = "mindigitsincluded"
};
clientValidationRule.ValidationParameters.Add("mindigits", MinDigits);
return new[] { clientValidationRule };
}
private static bool IsDigit(char input)
{
var digits = new[] { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' };
return digits.Contains(input);
}
}
以上是关于csharp 验证属性,用于确保输入的最小位数的主要内容,如果未能解决你的问题,请参考以下文章
csharp 验证可用于web api的AntiForgery令牌属性
csharp 自定义数据注释验证属性,用于验证数据是两个字符的美国州名缩写。
csharp 数据注释属性,用于验证字符串是否为有效的XML
AngularJS复习------表单验证
Java Script学习 6(转)
最小最大价格范围验证不适用于 jquery.validate.js