25

C#を使用してMVCWebアプリケーションを構築しています。サイトは多言語対応になるため、独自のResourceManagerを実装しました。このクラスは、現在のスレッドカルチャに応じてデータベース/キャッシュから必要なリソース文字列をフェッチする役割を果たし、これまでのところ正常に機能しています。

私の問題は、たとえばプロパティでRequired Attributeを使用する場合に、カスタムResourceManagerソリューションを使用して検証エラーメッセージをフェッチしたいということです。これはできますか?

4

1 に答える 1

51

RequiredAttributeを使用すると、カスタムリソースマネージャーを使用できます。

[Required(
    ErrorMessageResourceType = typeof(CustomResourceManager), 
    ErrorMessageResourceName = "ResourceKey")]
public string Username { get; set; }

アップデート:

もう1つの可能性は、カスタム属性を作成することです。

public class CustomRequiredAttribute : RequiredAttribute
{
    public override string FormatErrorMessage(string name)
    {
        return YourCustomResourceManager.GetResource(name);
    }
}
于 2010-02-27T15:34:45.677 に答える