1

我用这个类

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

虽然当我尝试使用此代码时

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

它会引发编译错误,并且不允许我使用这个本地化字符串。难道我做错了什么?

4

2 回答 2

1

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

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

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

于 2013-08-29T14:41:00.803 回答
0

您需要做的是指定ErrorMessageResourceTypeand ErrorMessageResourceName。该框架将为您完成其余的工作。只要确保UserNameRequired资源是公开的。

这是您的属性的外观:

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

这篇文章很好地说明了应该如何定义其余的本地化资源。它甚至还展示了如何在本地化版本之间动态切换。

于 2013-08-29T14:46:13.650 回答