net 4中
除了 Required 外,System.ComponentModel.DataAnnotations 命名空间还提供了其他一些常用的数据验证注解,用于验证不同类型的数据。以下是一些常见的注解:
Range: 用于验证数字类型的属性的值是否在指定的范围内。
csharp
复制代码
[Range(1, 100, ErrorMessage = “Value for {0} must be between {1} and {2}.”)]
public int Age { get; set; }
StringLength: 用于验证字符串类型的属性的长度是否在指定的范围内。
csharp
复制代码
[StringLength(100, MinimumLength = 2, ErrorMessage = “The {0} must be at least {2} and at max {1} characters long.”)]
public string Name { get; set; }
RegularExpression: 用于验证字符串类型的属性是否满足指定的正则表达式模式。
csharp
复制代码
[RegularExpression(@“1{1,40}$”, ErrorMessage = “Characters are not allowed.”)]
public string Description { get; set; }
Compare: 用于比较两个属性的值是否相等,通常用于确认密码等场景。
csharp
复制代码
[Compare(“Password”, ErrorMessage = “The password and confirmation password do not match.”)]
public string ConfirmPassword { get; set; }
EmailAddress: 用于验证字符串是否符合电子邮件地址的格式。
csharp
复制代码
[EmailAddress(ErrorMessage = “Invalid Email Address”)]
public string Email { get; set; }
Phone: 用于验证字符串是否符合电话号码的格式。
csharp
复制代码
[Phone(ErrorMessage = “Invalid Phone Number”)]
public string PhoneNumber { get; set; }
RegularExpression: 用于验证字符串是否符合指定的正则表达式模式。
csharp
复制代码
[RegularExpression(@“2*$”, ErrorMessage = “Value must be numeric”)]
public string ZipCode { get; set; }
在方法中调用验证
var errorMessage = “”;
if (!ModelState.IsValid) {
foreach (var key in ModelState.Keys)
{
var errors = ModelState[key].Errors;
if (errors.Any())
{
errorMessage+= errors.FirstOrDefault().ErrorMessage;
//处理错误信息
}
}
}
if (!string.IsNullOrEmpty(errorMessage)) {
errMsg=errorMessage;
return false;
}