0
public class CheckCreditNumberAttribute : ValidationAttribute
{
public CheckCreditNumberAttribute()
: base("Not a valid Account Number.")
{}
protected override ValidationResult IsValid(object value, ValidationContext validationContext)
{
if(value!=null)
{
string input = value.ToString();
int i;
int sum = 0;
int count = 1;
for(i=input.Length-1;i>=0;i--)
{
if(count%2!=0)
{
sum += i;
}
else
{
int newNum = i * 2;
if(newNum>9)
{
newNum -= 9;
}
sum += newNum;
}
count++;
}
if(sum%10==0)
{
return ValidationResult.Success;
}
else
{
var errorMessage = FormatErrorMessage(validationContext.DisplayName);
return new ValidationResult(errorMessage);
}
}
return ValidationResult.Success;
}
} }
上面是一个自定义注记类。在asp.net中的自定义注释不工作?
这是在模型类中。此注释在运行时不起作用。
[Required(ErrorMessage = "Account Number is Required")]
[CheckCreditNumber(ErrorMessage = "Not a valid Account Number.")]
[Display(Name = "Bank Account Number")]
[RegularExpression(@"\d{14,16}",ErrorMessage ="Account number should be of 14-16 digits.")]
public string BankAccountNumber { get; set; }
这里CheckCreditNumber是继承validate Attribute类的类。 请建议正确的解决方案!谢谢
当您发布时,您的CheckCreditNumberAttribute.IsValid函数是否被击中? – User3250
不,那是我的问题。它没有被击中。 –
请发布您的控制器操作方法。 – User3250