如何在模型中我们可以使用本地化字符串作为错误消息

时间:2013-08-29 14:33:54

标签: asp.net-mvc validation

我使用这个类

[Required(ErrorMessage = "Username is required") ]    
public string UserName { get; set; }

虽然我尝试使用此代码

[Required(ErrorMessage = Localization.UserNameRequired) ]    
public string UserName { get; set; }

它抛出编译错误,不允许我使用这个本地化的字符串。我做错了吗?

2 个答案:

答案 0 :(得分:1)

您不应将资源的值传递给ErrorMessage属性,而应使用ErrorMessageResourceNameErrorMessageResourceType属性:

[Required(ErrorMessageResourceName = "UserNameRequired", ErrorMessageResourceType = typeof(Resources.Localization))]
public string UserName { get; set; }

有关ASP.NET MVC中本地化的更多详细信息,请查看following blog post

答案 1 :(得分:0)

您需要做的是指定ErrorMessageResourceTypeErrorMessageResourceName。该框架将为您完成剩下的工作。只需确保UserNameRequired资源是公开的。

以下是您的属性的样子:

[Required(ErrorMessageResourceType = typeof(Localization), ErrorMessageResourceName = "UserNameRequired") ] 

这个article对如何定义其他本地化资源有一个很好的说明。它甚至还展示了如何动态地在本地化版本之间切换。