验证错误的MVC3本地化

当我在ViewModel的属性上添加[Required]属性时,MVC3自动生成如下错误消息:
价格字段为必填项.

我的网站的单一语言是俄语,因此我想获取本地化的错误消息.我可以使用[Display(Name =“ blablabla”)]来本地化字段的名称,但是如何本地化字段的必需部分呢?

更新:
我知道,我可以通过将其指定为[Required(ErrorMessage =“ blablabla”)]来更改具体字段的错误消息,有一种方法可以针对所有[Required]属性在一个地方更改它,因此我可以只使用[必需]没有附加参数,它从某些ressource / config / etc中获取了本地化的错误消息?

最佳答案
我创建了一个替代解决方案,您不必在本地使用属性.我已经创建了自定义模型/验证元数据提供程序.

您需要做的就是下载我的代码,然后在global.asax中执行以下操作:

var stringProvider = new ResourceStringProvider(Resources.LocalizedStrings.ResourceManager);
ModelMetadataProviders.Current = new LocalizedModelMetadataProvider(stringProvider);
ModelValidatorProviders.Providers.Clear();
ModelValidatorProviders.Providers.Add(new LocalizedModelValidatorProvider(stringProvider));

(ResourceStringProvider是我的默认实现,但创建从XML文件或数据库读取的替代方案很容易)

你可以在这里读到它:
http://blog.gauffin.org/2011/09/easy-model-and-validation-localization-in-asp-net-mvc3/

我将在完成视图本地化和其他HTML帮助程序后立即发布nuget程序包.

转载注明原文:验证错误的MVC3本地化 - 代码日志