我正在尝试在ASP中创建文本框验证。NET MVC使用C#和系统。组件模型。数据注释
namepsace。文本框应接受自然的人类语言,并允许1封或多封电子邮件。。。
这是我现在的密码
[RegularExpression(@"([a-zA-Z0-9+._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z0-9_-]+)", ErrorMessage = "Value Input on box1 must contain email object")]
public string Email_RawInput_1 { get; set; }
因此,如果用户键入类似的内容,它将在UI中传递而不返回错误消息。
但是,如果用户键入以下内容,它将无法验证
我如何使用System实现这一点。组件模型。数据注释命名空间?
如果您想使用数据注释,您可以创建一个自定义属性,您可以在网上找到许多示例。然后使用自定义属性装饰您的财产
public CheckEmailAttribute : ValidationAttribute
{
public override IsValid(object value)
{
var text = value as string;
if (this.DoesContainEmail(text))
{
return true;
}
// does not contain an Email address
return false;
}
private bool DoesContainEmail(string text)
{
return Regex.IsMatch(text,@"([a-zA-Z0-9+._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z0-9_-]+)" );
}
}
还有另一种方法,请看一下这个链接,也许你会发现它是一个有用的库
using System.Net.Mail;
private boolean EmailValidation(ByVal _emailAddress)
{
try
{
MailAddress m = new MailAddress(_emailAddress)
return true;
}
catch (Exception ex)
{
return false;
}
}