我使用这个类
[Required(ErrorMessage = "Username is required") ]
public string UserName { get; set; }
虽然我尝试使用此代码
[Required(ErrorMessage = Localization.UserNameRequired) ]
public string UserName { get; set; }
它抛出编译错误,不允许我使用这个本地化的字符串。我做错了吗?
答案 0 :(得分:1)
您不应将资源的值传递给ErrorMessage
属性,而应使用ErrorMessageResourceName
和ErrorMessageResourceType
属性:
[Required(ErrorMessageResourceName = "UserNameRequired", ErrorMessageResourceType = typeof(Resources.Localization))]
public string UserName { get; set; }
有关ASP.NET MVC中本地化的更多详细信息,请查看following blog post
。
答案 1 :(得分:0)
您需要做的是指定ErrorMessageResourceType
和ErrorMessageResourceName
。该框架将为您完成剩下的工作。只需确保UserNameRequired
资源是公开的。
以下是您的属性的样子:
[Required(ErrorMessageResourceType = typeof(Localization), ErrorMessageResourceName = "UserNameRequired") ]
这个article对如何定义其他本地化资源有一个很好的说明。它甚至还展示了如何动态地在本地化版本之间切换。