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

エラーをスローします:

属性引数は、定数式、typeof 式、または属性パラメーター タイプの配列作成式である必要があります。

リソース ファイルをこのような属性に読み込むにはどうすればよいですか?

4

2 に答える 2

4

使用する必要があります:

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

ErrorMessage は文字列専用です。

于 2012-05-30T19:33:56.240 に答える
0

これは不可能です。属性は定数値のみを使用できますが、リソース値は定数ではありません。

ErrorMessage を ErrorMessageResourceName に変更し、ここでメッセージ テキストを使用するのではなく、エラー メッセージ文字列のリソース名を使用できます。属性コードでは、リソース ファイルから名前で文字列を読み取るコードを追加する必要があります。

リソース文字列を読み込むコードについては、.resx ファイル用に生成された .cs ファイルを参照してください。

于 2012-05-30T19:34:05.490 に答える