我正在尝试在我正在编写的 ASP.NET MVC 3 应用程序上实现电话号码的自定义验证器。我已经为自定义验证器编写了代码,如下所示
public class PhoneNumberValidator : ValidationAttribute
{
public PhoneNumberValidator() : base("The Phone Number is not Valid")
{
}
public override bool IsValid(object value)
{
if (value != null)
{
string phonenumber = value.ToString();
var regex = new Regex(@"^(?:[0-9]+(?:-[0-9])?)*$");
if (regex.IsMatch(phonenumber))
{
return true;
}
else
{
return false;
}
}
return false;
}
}
然后在我的模型类中,我有以下内容:
[Display(Name = "PhoneNumber")]
[Required(ErrorMessage = "Is Phone Number Required")]
[PhoneNumberValidator]
public string PhoneNumber { get; set; }
但是,当我运行我的应用程序并单击页面上的继续按钮时,如果输入的值是字母,它不会引发错误,尽管如果我设置断点,我可以看到该值正在被读入字符串 phonenumber ok。我错过了一些简单的东西吗?