从resx文件中分配属性

时间:2012-05-30 19:32:12

标签: c# asp.net-mvc resx

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; }

引发错误:

  

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

如何将资源文件读入此类属性?

2 个答案:

答案 0 :(得分:4)

您需要使用:

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

ErrorMessage仅用于字符串。

答案 1 :(得分:0)

这是不可能的。属性只能使用常量值,但资源值不是常量。

您可以将ErrorMessage更改为ErrorMessageResourceName,而不是使用此处的消息文本,而是使用错误消息字符串的资源名称。在属性代码中,您需要添加代码,该代码将从资源文件中读取字符串的名称。

有关如何加载资源字符串的代码,请查看.resx文件生成的.cs文件。