c# - 有没有办法覆盖 [DataType(DataType.Password)] 的错误消息

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

我在 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] 错误消息,但不能覆盖数据类型。有什么建议吗?

谢谢

最佳答案

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

例如对于德语

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

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

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

关于c# - 有没有办法覆盖 [DataType(DataType.Password)] 的错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26699059/

相关文章:

c# - 小数到分数

c# - 在 C# 中从 WebClient 读取响应 header

C# WebClient 第一次运行缓慢

c# - 是否有任何工具可以将所有字段转换为一组 .cs 文件中的属性?

asp.net - 我的生产环境中的 MVC 与 WebForms

c# - 插入与更新

c# - 如何在microsoft project 2013 PWA csom中获取项目成本值

javascript - 无法加载资源: the server responded with a status of 500 (Internal Server Error) while returning image in base64 format from controller

javascript - 以模态形式返回 View

C# ASP.NET MVC RestAPI : Process headers before body and and parameters are received