直接或者继承自ValidationAttribute。
如果能用正则表达式校验的直接从RegularExpressionAttribute继承。 public class QQNumberAttribute : RegularExpressionAttribute { public QQNumberAttribute() : base(@"^\d{5,10}$")//不要忘了^$ { this.ErrorMessage = "{0}属性不是合法的QQ号,QQ号需要5-10位数字"; //设定ErrorMessage的默认值。使用的人也可以覆盖这个值 } } 手机号的正则表达式:@"^1(3[0-9]|4[57]|5[0-35-9]|7[01678]|8[0-9])\d{8}$"
直接继承自ValidationAttribute,重写IsValid方法 比如校验中国电话号码合法性 public class CNPhoneNumAttribute:ValidationAttribute { public CNPhoneNumAttribute() { this.ErrorMessage = "电话号码必须是固话或者手机,固话要是3-4位区号开头,手机必须以13、15、18、17开头"; } //注意,不要override ValidationResult IsValid(object value, ValidationContext validationContext) public override bool IsValid(object value) { if(value is string) { string s = (string)value; if(s.Length==13)//手机号 { if(s.StartsWith("13")|| s.StartsWith("15") || s.StartsWith("17") || s.StartsWith("18"