2009-05-03 10 views
7

मैंने देखा है कि सभी एमवीसी आरेखों में, दृश्य और मॉडल के बीच हमेशा एक कनेक्शन है, यह दर्शाता है कि दृश्य के पास मॉडल तक पहुंच है।एएसपीनेट एमवीसी - दृश्य मॉडल को कैसे एक्सेस करता है?

मुझे आश्चर्य है: यह कब लागू होता है? फिलहाल, मेरे पास कंट्रीस्ट्रिंग से पैरामीटर में मेरी कंट्रोलर एक्शन ले रही है, MyObjectViewData प्राप्त करने के लिए मॉडल से पूछें, और फिर MyObjectViewData में गुजरने के बाद एक दृश्य वापस करें। तो अनिवार्य रूप से मेरे बीच नियंत्रक है।

यह तार्किक दृष्टिकोण प्रतीत होता है, लेकिन यह इस धारणा के अनुरूप नहीं है कि मॉडल और व्यू के साथ व्यापार है।

सामान्य परिस्थितियां क्या हैं जहां वे नियंत्रक के बिना बातचीत करते हैं?

उत्तर

6

एमवीसी (वेब ​​पर) में मॉडल मॉडल इकाई के एक विशेष उदाहरण को प्रस्तुत करके सीधे मॉडल के साथ इंटरैक्ट करता है। यह केवल पर पर नियंत्रक के माध्यम से अप्रत्यक्ष रूप से कार्य करता है। गैर-वेब कार्यान्वयन में आप पर्यवेक्षक पैटर्न का उपयोग उन तत्वों के साथ हैंडलर को पंजीकृत करने के लिए कर सकते हैं जो मॉडल में विधियों का आह्वान कर सकते हैं जो बिना नियंत्रक बातचीत के मॉडल को अपडेट करते हैं। एएसपी.नेट एमवीसी और अन्य वेब-आधारित कार्यान्वयन गैर-वेब कार्यान्वयन की तुलना में अधिक कमजोर युग्मित हैं। मेरी राय में, यह एक अच्छी बात है। यह बहुत अधिक कंट्रोलर कार्यान्वयन के लिए बनाता है और आपको नियंत्रक और मॉडल के बीच चिंताओं को अलग रखने के लिए सावधान रहना होगा।

वेब कार्यान्वयन शायद मॉडल से दृश्य के अप्रत्यक्ष कनेक्शन के बिना खींचा जाना चाहिए क्योंकि आप वास्तव में नियंत्रक के बिना दोनों के बीच संवाद नहीं कर सकते हैं। मुझे लगता है कि कोई तर्क दे सकता है कि एक वेब सेवा इस कनेक्शन को प्रदान कर सकती है, लेकिन मैं इसे नियंत्रक का एक और रूप मानता हूं।

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