मैं एमवीसी 4 (रेजर व्यू इंजन) के साथ शुरू कर रहा हूं। (मेरा मानना है कि यह एमवीसी 3 और इससे पहले भी लागू हो सकता है।) मैं सोच रहा हूं कि डिस्प्ले एट्रिब्यूट डेटा एनोटेशन का उपयोग करने के लिए कोई दृश्य है या नहीं, केवल HTML में सीधे एक स्ट्रिंग लिखना।एमवीसी 4 डेटा एनोटेशन "डिस्प्ले" विशेषता
public class Thing
{
public string WildAndCrazyProperty { get; set; }
}
... वहाँ के रूप में संपत्ति व्याख्या में किसी भी लाभ होगा::
[Display(Name = "Wild and Crazy")]
public string WildAndCrazyProperty { get; set; }
... और होने मेरी मार्कअप हो:
उदाहरण के लिए, अगर मैं निम्नलिखित मॉडल था<html>
<body>
<div>@Html.DisplayNameFor(modelItem => modelItem.WildAndCrazyProperty)</div>
<div>@Html.DisplayFor(modelItem => modelItem.WildAndCrazyProperty)</div>
</body>
</html>
... एनोटेशन नहीं होने, और कर बनाम:
<html>
<body>
<div>Wild and Crazy</div>
<div>@Html.DisplayFor(modelItem => modelItem.WildAndCrazyProperty)</div>
</body>
</html>
इस मामले में मैंने Html.LabelFor
का उल्लेख नहीं किया है क्योंकि संपत्ति का डेटा स्थैतिक के रूप में प्रदर्शित किया जा रहा है (यानी। गैर संपादन योग्य) पृष्ठ पर पाठ। डेटा इस पृष्ठ पर कभी भी संपादन योग्य नहीं होगा, इसलिए Html.TextBoxFor
को दूसरे < divके भीतर उपयोग करने की आवश्यकता नहीं है और बाद में उस टेक्स्ट बॉक्स के साथ लेबल को सही ढंग से संबद्ध करने के लिए Html.LabelFor
का उपयोग करें।
और जिस तरह से मैं झुका रहा हूं। ऐसा लगता है कि आप ऐसा कुछ चाहते हैं जो वास्तविक प्रदर्शन करने वाले कोड के हिस्से में वास्तव में एक प्रदर्शन-प्रकार-चीज़ का अधिक हो। प्रोजेक्ट को फिर से कंपाइल करने के लिए सिर्फ शीर्षक या दो बदलने के लिए अनावश्यक लगता है। –
मैं पूरी तरह से पुनर्मूल्यांकन बिंदु पर सहमत हूं। मुझे लगता है कि अगर आपको कई विचारों में मॉडल का उपयोग करना पड़ता है, तो उस डेटा को एक विशेषता में डालने के पेशेवरों को विपक्ष से अधिक नहीं होता है। – eouw0o83hf
तो मुझे वास्तव में इस उत्तर के पीछे अवधारणा पसंद है, फिर भी यह मेरे लिए काम नहीं करता है। मेरी विरासत कक्षा बेस क्लास की 'प्रदर्शन' विशेषता को ओवरराइड नहीं करती है। कोई कारण क्यों? – Kehlan