是否有方法覆盖[DataType(DataType.Password)]的错误消息

本文关键字:DataType 错误 消息 有方法 覆盖 是否 Password | 更新日期: 2023-09-27 18:28:56

我在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" })

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

我试过了:

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

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

感谢

是否有方法覆盖[DataType(DataType.Password)]的错误消息

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

例如,对于德国

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

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

如果你需要除支持的语言之外的其他语言,你将不得不进行某种破解。请查看以下内容,其中包括ASP.NET团队中一位开发人员建议的解决方法:ASP.NET Identity Localization PublicKeyToken