如果我使用如下属性装饰ViewModels的属性:

public class Vm
{

[Required]
[StringLength(35)]
public string Name {get;set;}

}

我将收到英语验证消息:
"this field is required"
"The field Name must be a string with a maximum length of 35"

我该如何翻译?

最佳答案

您可以使用 ErrorMessageResourceName 属性:

[Required(ErrorMessageResourceName = "SomeResource")]
[StringLength(30, ErrorMessageResourceName = "SomeOtherResource")]
public string Name { get; set; }

您可以查看this blog post为例。

更新:

Application_Start中:
DefaultModelBinder.ResourceClassKey = "Messages";

并且需要在Messages.resx文件中添加自定义错误消息。使用Reflector查看System.Web.MvcSystem.ComponentModel.DataAnnotations程序集,以查看要使用的键名。

关于asp.net-mvc - 本地化数据注释默认消息([必需] [StringLength]等),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3758512/

10-10 14:25