在这里,我尝试在将用户名和密码签入数据库之前用批注验证用户名和密码,但是正则表达式与绝对正确的用户名和密码不匹配。为了进行验证,我使用此方法:
public bool IsValid(object obj)
{
var validationContext = new System.ComponentModel.DataAnnotations.ValidationContext(obj);
var validationResults = new List<ValidationResult>();
var isValid = Validator.TryValidateObject(obj, validationContext, validationResults, true);
return isValid;
}
但是Username = Vladimir12
和Password = vovata12
不匹配。这是AccountLoginDto.cs:
public class AccountLoginDTO
{
[Required]
[RegularExpression(@"^[0-9a-zA-Z]{6-12}$")]
public string Username { get; set; }
[Required]
[RegularExpression(@"^[0-9a-z]{6-12}$")]
public string Password { get; set; }
}
当我调用方法时:
var dto = new AccountLoginDTO
{
Username = username,
Password = passwword
};
if (!validation.IsValid(dto))
{
throw new ArgumentException(IncorectInput);
}
由于用户名和密码不匹配,因此例外。
答案 0 :(得分:1)
{6-12}
无效,如果您希望该集合的长度在6到12个字符之间,请使用{6,12}
。