mvc4电子邮件验证本地化错误消息

rei*_*ard 2 asp.net-mvc asp.net-mvc-4

如果电子邮件地址格式错误,我无法本地化错误消息.

我一直收到英文信息:"请输入有效的电子邮件地址"

这是我的模特:

    [Required(ErrorMessage = "Ihre Email-Adresse fehlt!")]
    [Display(Name = "Ihre Email Adresse")]
    [DataType(DataType.EmailAddress, ErrorMessage = "Ungültige Email-Adresse")]
    [RegularExpression(@"[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,4}", ErrorMessage = "Ungültige Email-Adresse")]
    public string From { get; set; }
Run Code Online (Sandbox Code Playgroud)

如果输入了NO地址,则显示德语消息,但如果输入了无效的地址,则会显示英语消息.

如您所见,我尝试了两种方法 - DataType和RegularExpression-Annotation中的ErrorMessage.

当地址无效时,如何呈现本地化的ErrorMessage?

Eri*_*sch 17

使用DataTypeAttribute时,MVC不会对电子邮件地址进行任何验证,因此您看到的任何错误消息都来自正则表达式或来自其他地方的代码.

由于您有正则表达式失败的错误消息,因此它必须来自其他内容.您是否使用任何类型的第三方验证工具来处理电子邮件地址?由于您使用的是DataType属性,是否有自定义的DisplayTemplate?

如果您使用的是.net 4.5(VS 2012),我建议您使用EmailAddressAttribute:

[EmailAddress(ErrorMessage = "...")]
Run Code Online (Sandbox Code Playgroud)

这样,您可以删除DataType(EmailAddress包括从DataTypeAttribute派生的DataType功能)和Regex.