gpt4 book ai didi

c# - 无法在客户端验证电子邮件

转载 作者:太空宇宙 更新时间:2023-11-03 22:16:01 25 4
gpt4 key购买 nike

我正在使用下面的类和默认的脚手架 View ,但我无法在客户端验证电子邮件。我还尝试了另一个电子邮件正则表达式,但也没有用。我在这里缺少什么?

public class Person
{
[Email(ErrorMessage="...........")]
public string Name { get; set; }
}
public class EmailAttribute : RegularExpressionAttribute
{
public EmailAttribute()
: base(@"^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$")
{
}
}

最佳答案

您可能会找到 following blog post有用。摘自:

public class EmailAttribute : RegularExpressionAttribute, IClientValidatable
{
public EmailAttribute()
: base(@"^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}" +
@"\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\" +
@".)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$")
{
}

public IEnumerable<ModelClientValidationRule> GetClientValidationRules(ModelMetadata metadata, ControllerContext context)
{
var errorMessage = FormatErrorMessage(metadata.GetDisplayName());
yield return new EmailValidationRule(errorMessage);
}
}

public class EmailValidationRule : ModelClientValidationRule
{
public EmailValidationRule(string errorMessage)
{
ErrorMessage = errorMessage;
ValidationType = "email";
}
}

以及用法:

public class Person
{
[Required(ErrorMessage = "{0} is required.")]
[Email(ErrorMessage = "{0} appears to be invalid.")]
public string Name { get; set; }
}

这就是全部。因为此自定义属性实现了 IClientValidatable客户端验证也将起作用。

当然,如果本示例中使用的正则表达式不适合您,请毫不犹豫地对其进行改进。

关于c# - 无法在客户端验证电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5173798/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com