2011-09-18 9 views
8

विशेषता, DisplayFormatAttribute.ConvertEmptyStringToNull का एक डिफ़ॉल्ट डिफ़ॉल्ट है। मैं इसे पूरी साइट के लिए गलत पर डिफ़ॉल्ट करना चाहता हूं (या कक्षा या पृष्ठ से भी अच्छा होगा)।DisplayFormatAttribute.ConvertEmptyStringToNull के लिए डिफ़ॉल्ट सेट करें साइट पर झूठी

[DisplayFormat(ConvertEmptyStringToNull=false)] 
इस तरह
+1

एमवीसी का आप किस संस्करण का उपयोग कर रहे हैं? – Paul

+0

एमवीसी 3. यदि प्रश्न से कई संस्करण लाभ हो सकते हैं तो मैंने टैग जेनेरिक छोड़ा – Brettski

उत्तर

15
अपने स्वयं के कस्टम मॉडल मेटाडाटा प्रदाता

आप बना सकते हैं::

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

तो रजिस्टर वहाँ एक रास्ता मैं यह कर सकता तो मैं साथ प्रत्येक परीक्षा प्रपत्र क्षेत्र को सजाने के लिए की जरूरत नहीं है है यह आपके app_start में:

ModelMetadataProviders.Current = new CustomModelMetadataProvider(); 
संबंधित मुद्दे