2013-05-09 14 views
8

動的データWebアプリケーションでDataAnnotationsをカスタマイズするためのscenerioがあります。これは、のscenerioある:動的データのデータ注釈のカスタマイズ

[表示(NAME = "DISPNAME")]

パブリック文字列DNAME {取得または設定;}

の代わりに表示するためのNAME = "DISPNAMEを" ハードコーディングDataAnnotation、私はDataBaseからいくつかの値を取得し、int属性にフィットしたい。等:

[表示(NAME = SomeValueFromDB)]

パブリック文字列DNAME {得る;セット;}

代わりにデータベースから表示DataAnnotationのName属性を表示する方法はありますその値をハードコーディングするのですか?事前に

おかげで、

Sujith

答えて

11

は私が解決策を見つけました。しかし、これは、我々はアプリケーションをビルドする場合にのみ適用されます。DisplayNameAttributeを継承します。

は、カスタムクラス(CustomDisplayNameAttributeセイ)を作成します。そのクラス名をプロパティ名の上に表示属性(ここでは "CustomDisplayName")と呼んでください。

Display属性にDataAnnotationを設定するときは、クラス名から「Attribute」部分を省略してください。すなわち、表示属性のDataAnnotationはCustomDisplayName(CustomDisplayNameAttributeではない)になります。

public class DomainClass 
{ 
    [CustomDisplayName("")] 
    public object PropertyName{ get; set; } 
} 



public class CustomDisplayNameAttribute : DisplayNameAttribute 
    { 
     public CustomDisplayNameAttribute(string value) 
      : base(GetMessageFromResource(value)) 
     { } 

     private static string GetMessageFromResource(string value) 
     { 
      return "Custom Display Name"; 
     } 
    } 

ホープ、これはすべてのことができます....

コーディングハッピー....

+2

はsujithありがとう。私も同じことが必要です:) – BonDaviD

+1

これは非常に便利です、今私は多くの努力なしで複数の言語を使用することができます –

関連する問題