[英]Using model data annotation in MVC to ensure a string contains just one word?
[英]Using model data annotation validation in MVC to ensure a paragraph contain email pattern string
我尝试使用 C# 和System.ComponentModel.DataAnnotations
命名空间在 ASP.NET MVC 中创建文本框验证。 文本框应接受自然人类语言并允许 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.ComponentModel.DataAnnotations
命名空间实现这一点?
如果你想使用数据注释,你可以创建一个自定义属性,你可以在网上找到很多示例。 然后用您的自定义属性装饰您的财产
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;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.