2013-05-09 14 views
8

Dinamik Veri Web Uygulamasındaki DataAnnotations'ı özelleştirmek için bir senaryoda karşılaştım. {; Seti; olsun} Yerine İsim = "DispName" hardcodingDinamik verilerde veri açıklamalarını özelleştirme

Ekran için

[Ekran (Ad = "DispName")]

kamu dize DNAME: Bu senaryosu olduğunu DataAnnotation, DataBase'den bir değer almak ve Name özniteliğine sığdırmak istiyorum. gibi:

[Ekran (Ad = SomeValueFromDB)]

kamu dize DNAME {get; set;}

yerine veritabanından Görünen DataAnnotation İsim niteliğini göstermek için herhangi bir yolu var mı kodunun değeri nedir? peşin

sayesinde

Sujith

cevap

11

ben bir çözüm buldum.

özel bir sınıf oluşturun (De ki: CustomDisplayNameAttribute) DisplayNameAttribute devralır Ama bu uygulama oluşturmak yalnızca geçerlidir. Ve özellik adının üzerinde bu sınıf adını ekran özniteliği (burada "CustomDisplayName") olarak adlandırın.

DataAnnotation for Display özniteliğini ayarlarken, "Attribute" bölümünü sınıf adından çıkarmayın. yani. Display özniteliği için DataAnnotation CustomDisplayName (CustomDisplayNameAttribute değil) olacaktır. Bu tüm yardımcı

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

Umut .... Mutlu

Kodlama ....

+2

sen Sujith teşekkür ederim. Ben de aynı ihtiyacım var :) – BonDaviD

+1

bu çok yararlı, şimdi çok çaba sarf etmeden birden fazla dil kullanabilirim –

İlgili konular