数据类型验证在 Web 表单脚手架中不起作用

Datatype validation is not working in web form scaffolding

我正在使用 Web 表单脚手架工具 visual studio 用于 Web 表单。到目前为止一切都很好,除了数据类型电子邮件和 phone 数字验证确实按预期工作。添加时有数据验证检查:

 [DataType(DataType.PhoneNumber, ErrorMessage = "Phone number is not valid")]
 public string TitleEmail { get; set; }

 [DataType(DataType.EmailAddress, ErrorMessage = "Email address is not valid")]

在不覆盖验证的情况下,我不得不使用正则表达式。

[RegularExpression(@"\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*", ErrorMessage = "Email was invalid.")]
[RegularExpression(@"^(?:(?:\+?1\s*(?:[.-]\s*)?)?(?:\(\s*([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9])\s*\)|([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9]))\s*(?:[.-]\s*)?)?([2-9]1[02-9]|[2-9][02-9]1|[2-9][02-9]{2})\s*(?:[.-]\s*)?([0-9]{4})(?:\s*(?:#|x\.?|ext\.?|extension)\s*(\d+))?$", ErrorMessage = "Invalid phone number format.")]

有谁知道为什么默认验证对 Web 窗体脚手架不起作用或让它再次起作用?

添加为答案...

您可以使用 [EmailAddress] 属性来验证电子邮件地址。在.NET 4.5 中。 [DataType(DataType.EmailAddress)] 仅用于显示目的(使用 DisplayFor 将导致它呈现 mailto link 而不是纯文本)。