तो, शीर्षक को खुद के लिए बोलना चाहिए।
ASP.NET MVC में पुन: प्रयोग करने योग्य घटक बनाने के लिए, हमारे पास 3 विकल्प हैं (दूसरों के लिए जिसका मैंने उल्लेख नहीं किया है):
आंशिक दृश्य:
@Html.Partial(Model.Foo, "SomePartial")
कस्टम संपादक टेम्पलेट:
@Html.EditorFor(model => model.Foo)
कस्टम प्रदर्शन टेम्पलेट:
@Html.DisplayFor(model => model.Foo)
वास्तविक दृश्य / HTML के संदर्भ में, सभी तीन कार्यान्वयन समान हैं:
@model WebApplications.Models.FooObject
<!-- Bunch of HTML -->
तो, मेरा प्रश्न है - आप कब / कैसे तय करते हैं कि तीन में से किसका उपयोग करना है?
मैं वास्तव में क्या देख रहा हूं, एक बनाने से पहले खुद से पूछने के लिए प्रश्नों की एक सूची है, जिसके लिए उत्तर का उपयोग किस टेम्पलेट का उपयोग करने के लिए किया जा सकता है।
यहाँ 2 चीजें हैं जिन्हें मैंने EditorFor / DisplayFor के साथ बेहतर पाया है:
HTML सहायकों का प्रतिपादन करते समय वे मॉडल पदानुक्रम का सम्मान करते हैं (जैसे यदि आपके "फू" मॉडल पर "बार" ऑब्जेक्ट है, तो "बार" के लिए HTML तत्वों को "Foo.Bar.ElementName" के साथ प्रदान किया जाएगा, जबकि एक आंशिक "होगा" ElementName ")।
अधिक मजबूत, उदाहरण के लिए यदि आपके पास
List<T>
अपने ViewModel में कुछ था , तो आप उपयोग कर सकते हैं@Html.DisplayFor(model => model.CollectionOfFoo)
, और MVC यह देखने के लिए काफी स्मार्ट है कि यह एक संग्रह है और प्रत्येक आइटम के लिए एकल प्रदर्शन को प्रस्तुत करना (जैसा कि आंशिक के विपरीत है, जिसके लिए एक स्पष्ट आवश्यकता होगी पाश)।
मैंने यह भी सुना है कि DisplayFor एक "केवल पढ़ने के लिए" टेम्पलेट प्रदान करता है, लेकिन मुझे यह समझ में नहीं आता है - क्या मैं वहाँ पर एक फॉर्म नहीं फेंक सकता?
क्या कोई मुझे कुछ अन्य कारण बता सकता है? कहीं सूची / लेख कहीं तीनों की तुलना तो नहीं कर रहा है?