电话验证属性不起作用

3 c# asp.net-mvc model-validation

我正在尝试验证一些用户联系方式,如下所示:

public class Customer
{
    [Display(Name = "Your e-mail :")]
    [Required(ErrorMessage = "An email address is required")]
    [EmailAddress(ErrorMessage = "Invalid Email Address")]
    public string ContactEmail { get; set; }    

    [Display(Name = "Your contact number :")]
    [Required(ErrorMessage = "A phone number is required")]
    [Phone(ErrorMessage = "Invalid Phone Number")] 
    public string ContactNumber { get; set; }

}
Run Code Online (Sandbox Code Playgroud)

在我看来,电子邮件验证效果很好,并且只允许有效的电子邮件地址。但是,电话验证根本不起作用,它允许各种字母和特殊字符。

文档指出PhoneAttribute该类

使用电话号码的正则表达式指定数据字段值是格式正确的电话号码

那么为什么这没有发生呢?

VIG*_*LAM 5

使用以下代码进行电话验证。

[Display(Name = "Your contact number :")]
[Required(ErrorMessage = "A phone number is required.")]
[DataType(DataType.PhoneNumber, ErrorMessage = "Invalid Phone Number")]
[RegularExpression(@"^([0-9]{10})$", ErrorMessage = "Invalid Phone Number.")]
public string ContactNumber { get; set; }
Run Code Online (Sandbox Code Playgroud)