2014-11-02 63 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

相關問題