web-dev-qa-db-ja.com

カスタムリソースソリューションでDataAnnotationsErrorMessageResourceNameを使用する方法

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

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

25
Mats

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);
    }
}
51
Darin Dimitrov