2014-11-02 47 views
2

我使用MVC 5的ASP.NET身份。对于密码验证,我在AccountViewModels.cs中有以下一段代码:有没有办法来覆盖[DataType(DataType.Password)]的错误消息

[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" }) 

Unforunately的错误信息是建立在识别系统,他们只以英文显示。由于我使用的语言不止一种,因此我想根据页面当前的语言来定制结果页面上的错误消息。有什么办法可以实现吗?

我尝试:

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

与上面的代码我能够覆盖[必需]错误消息而不是数据类型。有小费吗?

感谢

+0

http://blog.gauffin.org/2011/09/easy-model-and-validation-本地化在asp-net-mvc3/ – wal 2014-11-02 12:08:43

+0

@wal数据类型密码验证有一个完全不同的行为比所需的验证中提到你的链接...谢谢你的链接呢! – Gloria 2014-11-02 12:28:54

回答

2

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

E.g.对于德语

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

请注意,本地化软件包仅针对少数语言而存在。不幸的是,它们不存在任何斯堪的纳维亚语言。

如果你需要支持的其他语言,你将不得不做一些破解。看看下面的内容,其中包括来自ASP.NET团队的开发人员的建议解决方法:Asp.Net Identity Localization PublicKeyToken

相关问题