2010-09-22 19 views
15

मैं थोड़ी देर के लिए mvc2 उपयोग किया गया है अब, और गुण जब मैं मैं डेटा प्रकार का उपयोग खाका तैयार करने की जरूरत हैडेटा प्रकार बनाम UiHint

[DataType("DropDown")] 
    public int Field { get; set; } 

मैं UiHint का उपयोग कर दूसरों में एक ही परिणाम प्राप्त करने के देख

[UiHint("DropDown")] 
    public int Field { get; set; } 

इन दो विशेषताओं का उपयोग के बीच क्या अंतर है? मुझे सामान्य रूप से किस विशेषता का उपयोग करना चाहिए, या वे अलग-अलग कार्यों के लिए हैं?

उत्तर

22

डेटाटाइप आमतौर पर यह ज्ञात करने के लिए उपयोग किया जाता है कि यह एक संपत्ति का एक बहुत ही विशिष्ट संस्करण है, जैसे मूल्य।

डेटाटाइप का सबसे आम उदाहरण [DataType(DataTypes.EmailAddress)] है जो आमतौर पर एक स्ट्रिंग है लेकिन हम कह रहे हैं कि यह एक बहुत ही विशिष्ट प्रकार की स्ट्रिंग है।

वे दोनों सहायक हैं और UIHint डेटाटाइप ओवरराइड करता है। तो यदि आपके पास एक निश्चित डेटाटाइप है लेकिन आप उस विशिष्ट संपत्ति के लिए संपादक को ओवरराइड करना चाहते हैं तो आप UIHint का उपयोग कर सकते हैं।

1

डेटा प्रकार विशेषता दो उद्देश्यों

  • एक डेटा क्षेत्र के लिए अतिरिक्त प्रकार की जानकारी प्रदान करें है। आप डेटा मॉडल में डेटा फ़ील्ड में DataTypeAttribute विशेषता को लागू करके और डेटाटाइप गणना से अतिरिक्त प्रकार का नाम निर्दिष्ट करके ऐसा करते हैं। फिर दृश्य इंजन संपत्ति को प्रदर्शित करने के लिए डिफ़ॉल्ट टेम्पलेट का उपयोग करता है, जैसे बूलियन के लिए एक चेकबॉक्स।
  • यदि आप डिफ़ॉल्ट टेम्पलेट को ओवरराइड करना चाहते हैं, और कस्टम टेम्पलेट का उपयोग करना चाहते हैं, तो इसका उपयोग उस डेटा फ़ील्ड के साथ कस्टम फ़ील्ड टेम्पलेट को संबद्ध करने के लिए किया जा सकता है। इस मामले में आपको प्रदर्शन का वर्णन करने के लिए आंशिक पृष्ठ [.cshtml, एमवीसी 4] प्रदान करना होगा।
  • UIHint का उद्देश्य उपरोक्त दूसरे बिंदु के समान है। कहां उपयोग करें? जवाब है: संदर्भ, यानी, और अधिक समझ में क्या होगा, आपके कोड को हल करने की कोशिश कर रहे भौतिक समस्या के करीब क्या है। क्या होगा यदि दोनों एक ही संपत्ति पर लागू होते हैं? जवाब यह है: जाहिर है, UIHint की प्राथमिकता है। लेकिन आप दोनों क्यों लागू करेंगे?

    संबंधित मुद्दे