【问题标题】:Is there a way to override the error messages of [DataType(DataType.Password)]有没有办法覆盖 [DataType(DataType.Password)] 的错误消息
【发布时间】:2014-11-02 12:01:32
【问题描述】:

我在 MVC 5 中使用 ASP.NET 身份。对于密码验证,我在 AccountViewModels.cs 中有以下代码:

[Required]
[DataType(DataType.Password)]
[Display(Name = "Password", ResourceType = typeof(MyResources.LocalizedText))]
public string Password { get; set; }

在cshtml文件中:

@Html.PasswordFor(m => m.Password, new { @class = "form-control" })

不幸的是,错误消息是内置在身份系统中的,它们仅以英文显示。由于我使用超过 1 种语言,我想根据页面当前语言自定义结果页面上的错误消息。有什么办法可以做到吗?

我试过了:

[Required(ErrorMessageResourceType = typeof(MyResources.LocalizedText), ErrorMessageResourceName = "password_required")]
[DataType(DataType.Password, ErrorMessage = null, ErrorMessageResourceType = typeof(MyResources.LocalizedText), ErrorMessageResourceName = "password_errorDatatype")])]

使用上面的代码,我能够覆盖 [Required] 错误消息,但不能覆盖 DataType。有什么建议吗?

谢谢

【问题讨论】:

  • @wal DataType 密码验证的行为与您链接中提到的必需验证完全不同...无论如何感谢您的链接!

标签: c# asp.net asp.net-mvc validation


【解决方案1】:

要自定义数据类型错误消息,您需要为您想要支持的每种语言安装 AspNet.Identity.Core 的本地化 NuGet 包。

例如德语

Install-Package Microsoft.AspNet.Identity.Core.de

请注意,本地化包仅适用于几种语言。不幸的是,它们还没有适用于任何斯堪的纳维亚语言。

如果您需要其他语言而不是受支持的语言,则必须进行某种破解。查看以下内容,其中包括 ASP.NET 团队的一位开发人员建议的解决方法:Asp.Net Identity Localization PublicKeyToken

【讨论】:

    猜你喜欢
    • 2012-02-04
    • 1970-01-01
    • 2018-10-05
    • 1970-01-01
    • 1970-01-01
    • 2011-12-25
    • 2013-09-25
    • 2012-09-03
    • 1970-01-01
    相关资源
    最近更新 更多