如何在DataAnnotation中本地化ErrorMessage?

使用MVC 5我需要为DataAnnotation属性本地化ErrorMessage。 我收到以下错误

错误

属性参数必须是属性参数类型的常量表达式,typeof表达式或数组创建表达式

在模型中

[Compare("Password", ErrorMessage = Resources.Account_Register_ConfirmPasswordErrorMessage)] public string ConfirmPassword { get; set; } 

知道怎么解决吗?

您需要使用ErrorMessageResourceNameErrorMessageResourceType属性。

例如这样:

 [Compare("Password", ErrorMessageResourceName = "ConfirmPasswordErrorMessage", ErrorMessageResourceType=typeof(<>)] public string ConfirmPassword { get; set; } 

这里还有一个MSDN链接,您可以在其中找到这两个属性的说明。

http://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations.compareattribute(v=vs.110).aspx

希望这可以帮助!

此致,Uros

您不需要任何东西,只需在正确的位置创建资源文件即可。

例如,Resources> ViewModels> LoginVm.en-US.resx

在LoginVm中:[必需(ErrorMessage =“სახელიარისაუცილებელი”)] <(这是格鲁吉亚语)

并在LoginVm.en-US.resx中添加

სახელიარისაუცილებელი> UserName是必需的

一切都完成了。