2008-12-29 10 views
6

संबंधित पोस्ट पर मैंने उल्लेख किया है कि मुझे कस्टम HTML हेल्पर्स को विकसित होने पर, सहायक, उपयोगी होने के लिए मिला है। उदाहरण के लिए, जब मुझे "ग्रिड" के लिए पेजिंग की आवश्यकता होती है तो मेरे पास एक कस्टम सहायक है जिसे मैं Html.Pager() पर कॉल कर सकता हूं।क्या कस्टम एचटीएमएल सहायक वर्ग एएसपी.नेट एमवीसी मॉडल का उल्लंघन करते हैं?

कुछ ने एक मुद्दा बना दिया है कि एचटीएमएल हेल्पर्स एमवीसी मॉडल का उल्लंघन कर रहे हैं। निजी तौर पर, मुझे यह नहीं लगता कि यह मौजूदा मददगारों से अलग है, जैसे Html.Textbox() या Html.ActionLink()

मैं अभी भी एमवीसी के बारे में अधिक जानने की कोशिश कर रहा हूं, इसलिए सभी दृष्टिकोणों की सराहना की जाती है।

+0

तर्क क्या बनाया जा रहा है? मुझे कोई समस्या नहीं दिखाई देती है जब तक कि आप वास्तव में सहायक नहीं हैं, जिसे आप सहायक पहुंच –

उत्तर

16

ध्यान दें कि मौजूदा सहायक सभी HTMLHelper क्लास के विस्तार विधियों के रूप में लिखे गए हैं। हमने स्पष्ट रूप से उस दृष्टिकोण को लिया ताकि अन्य लोग एचटीएमएलहेल्पर के विस्तार विधियों के रूप में अपने स्वयं के सहायक तरीके लिख सकें।

तो सामान्य रूप से, यह एमवीसी मॉडल का उल्लंघन नहीं है। मुझे लगता है कि यह वास्तव में इस बात पर निर्भर करता है कि आप अपने सहायक में क्या कर रहे हैं। हेल्पर्स को केवल उन तर्कों के आधार पर एचटीएमएल प्रस्तुत करना चाहिए। उन्हें कोई डेटा एक्सेस नहीं करना चाहिए, आदि ...

वे केवल मार्कअप के सामान्य टुकड़ों को प्रस्तुत करने के लिए कोड को समाहित करते हैं। यदि आप ऐसा कर रहे हैं, तो आप एएसपी.नेट एमवीसी मॉडल का उल्लंघन नहीं कर रहे हैं।

+0

में देखते हैं तो डेटा एक्सेस या एचटीएमएल को प्रस्तुत करने से कहीं अधिक किसी अन्य चीज के साथ एप्लिकेशन के सामान्य टुकड़े प्रस्तुत करने का सबसे अच्छा तरीका क्या है। एमवीसी 2 में हमारे पास एचटीएमएल है। रेंडरएक्शन, यह शायद सबसे अच्छा तरीका है, क्योंकि यह नियंत्रक से आता है, लेकिन एमवीसी 1 में? –

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

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