2011-09-18 36 views
8

Özellik, DisplayFormatAttribute.ConvertEmptyStringToNull varsayılan değeri vardır. Sitenin tamamı için onu false olarak ayarlamak isterim (ya da sınıfa veya sayfaya göre de iyi olurdu).DisplayFormatAttribute.ConvertEmptyStringToNull öğesinde varsayılan olarak ayarlamak için varsayılan olarak ayarlayın

[DisplayFormat(ConvertEmptyStringToNull=false)] 
böyle
+1

Hangi MVC sürümünü kullanıyorsunuz? – Paul

+0

MVC 3. Birden çok versiyonun sorudan faydalanması durumunda jenerik etiketini bıraktım. – Brettski

cevap

15

oluşturabilir kendi özel modeli meta sağlayıcı::

public class CustomModelMetadataProvider : DataAnnotationsModelMetadataProvider 
{ 
    protected override ModelMetadata CreateMetadata(IEnumerable<System.Attribute> attributes, System.Type containerType, System.Func<object> modelAccessor, System.Type modelType, string propertyName) 
    { 
     var modelMetadata = base.CreateMetadata(attributes, containerType, modelAccessor, modelType, propertyName); 
     if (string.IsNullOrEmpty(propertyName)) return modelMetadata; 

     if (modelType == typeof(String)) 
       modelMetadata.ConvertEmptyStringToNull = false; 

     return modelMetadata;   
    } 
} 

Sonra kayıt Birlikte her test form alanını süslemek için gerek kalmaz bunu yapabilirim bir yolu var mı Uygulamanızın başlangıcında:

ModelMetadataProviders.Current = new CustomModelMetadataProvider(); 
İlgili konular