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



我正在使用Web表单脚手架工具,该工具使用visual studio进行Web表单。到目前为止,一切都很好,除了Datatype电子邮件和电话号码验证确实如预期那样工作。添加时会进行数据验证检查:

 [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(@"^(?:(?:+?1s*(?:[.-]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链接,而不是纯文本)。

最新更新