2012-05-30 81 views
0
string thing = ComparaSave.Resources.Message.EmailAdrRequired; 
[Required(ErrorMessage = thing)] <---- The problem!! 
[DataType(DataType.EmailAddress)] 
[Display(Name = "Email Address")] 
[StringLength(100)] 
[EmailAddress] 
public string Email { get; set; } 

分配屬性拋出錯誤:從RESX文件

An attribute argument must be a constant expression, typeof expression or array creation expression of an attribute parameter type.

我如何讀取一個資源文件爲屬性,如本?

回答

4

您需要使用:

[Required(ErrorMessageResourceName= "FullNameRequired", ErrorMessageResourceType = typeof(MyResource)] 

的ErrorMessage僅用於字符串。

+0

感謝您的快速回答!作品:) – valen

+0

沒問題,歡迎:) –

0

這是不可能的。屬性只能使用常量值,但資源值不是常量。

您可以將ErrorMessage更改爲ErrorMessageResourceName,而不是使用此處的消息文本,而是使用錯誤消息字符串的資源名稱。在屬性代碼中,您需要添加將通過資源文件中的名稱讀取字符串的代碼。

有關如何加載資源字符串的代碼,請查看爲.resx文件生成的.cs文件。