为什么我不能将资源用作具有DataAnnotations的ErrorMessage?

Joh*_*tål 17 c# asp.net asp.net-mvc resources data-annotations

我为什么不能这样做?

[Required(ErrorMessage = "*")]
[RegularExpression("^[a-zA-Z0-9_]*$", ErrorMessage = Resources.RegistrationModel.UsernameError)]
public string Username { get; set; }
Run Code Online (Sandbox Code Playgroud)

告诉我的错误信息是什么?

属性参数必须是属性参数类型的常量表达式,typeof表达式或数组创建表达式.

Axe*_*ger 43

当您使用该ErrorMessage属性时,只能为其分配常量字符串或字符串文字.

使用ErrorMessageResourceTypeErrorMessageResourceName不是规范您的资源.

[RegularExpression(
    "^[a-zA-Z0-9_]*$", 
    ErrorMessageResourceType=typeof(Resources.RegistrationModel),
    ErrorMessageResourceName= "UsernameError"
)]
Run Code Online (Sandbox Code Playgroud)

请注意,资源必须是公共的(可以在资源编辑器中设置).

设置资源访问公共http://img402.imageshack.us/img402/504/98454371.jpg