ASP.NET वेबफ़ॉर्म की तुलना में ASP.NET MVC पृष्ठ का 'पेज लाइफ़ साइकिल' क्या है?


158

ASP.NET वेबफ़ॉर्म की तुलना में ASP.NET MVC पृष्ठ का 'पेज लाइफ़ साइकिल' क्या है?

मैं इस 'सरल' प्रश्न को बेहतर ढंग से समझने का प्रयास कर रहा हूं कि यह निर्धारित करने के लिए कि मेरे पास (बहुत) सरल साइट में मौजूद पृष्ठ ASP.NET WebForms से आसानी से परिवर्तित किए जा सकते हैं या नहीं।

या तो नीचे की प्रक्रिया का 'रूपांतरण', या एक वैकल्पिक जीवनचक्र वह होगा जो मैं खोज रहा हूं।

मैं वर्तमान में क्या कर रहा हूँ:

(हाँ, मुझे पता है कि मेरे सवाल का जवाब देने में सक्षम कोई भी पहले से ही यह सब जानता है - मैं सिर्फ 'जीवनचक्र' की तुलना प्राप्त करने की कोशिश कर रहा हूं, इसलिए मैंने सोचा कि हम जो पहले से ही जानते हैं उसे भरकर शुरू करूँगा)

पृष्ठ का प्रतिपादन:

  • मेरे पास एक मास्टर पृष्ठ है जिसमें मेरा मूल टेम्पलेट है
  • मेरे पास सामग्री पृष्ठ हैं जो मुझे मास्टर पृष्ठ से क्षेत्र का नाम देते हैं जिसमें मैं सामग्री डालता हूं।
  • प्रत्येक सामग्री पृष्ठ के लिए एक घटना हैंडलर में मैं डेटाबेस से डेटा लोड करता हूं (ज्यादातर केवल पढ़ने के लिए)।
  • मैं इस डेटा को ASP.NET नियंत्रण ग्रिड, ड्रॉपडाउन या रिपीटर्स का प्रतिनिधित्व करने के लिए बांधता हूं। यह डेटा HTML उत्पन्न के अंदर सभी 'रहता है'। इसमें से कुछ ViewState में मिलता है (लेकिन मैं इसमें बहुत अधिक नहीं जाऊँगा!)
  • मैं पृष्ठ पर छवि या पाठ बॉक्स नियंत्रण जैसी कुछ वस्तुओं के लिए गुण या बाइंड डेटा सेट करता हूं।
  • पृष्ठ को गैर-पुन: प्रयोज्य HTML के रूप में प्रदान किए गए क्लाइंट को भेजा जाता है।
  • मैं देखने की कोशिश करता हूं कि पेज को न्यूनतम के रूप में क्या चाहिए, इसके अलावा व्यूस्टैट का उपयोग करने से बचें।

ग्राहक पक्ष (ASP.NET AJAX का उपयोग नहीं):

  • मैं पेज पर नियंत्रण खोजने और उन पर संचालन करने के लिए JQuery और कुछ बुरा चाल का उपयोग कर सकता हूं।
  • यदि उपयोगकर्ता ड्रॉपडाउन से चयन करता है - एक पोस्टबैक उत्पन्न होता है जो मेरे कोडबेहैंड में C # ईवेंट को ट्रिगर करता है। यह ईवेंट डेटाबेस पर जा सकता है, लेकिन जो कुछ भी यह पूरी तरह से नवनिर्मित HTML पृष्ठ करता है वह क्लाइंट को वापस भेजा जा रहा है।
  • मैं मुख्य मूल्य जोड़े को स्टोर करने के लिए Page.Session का उपयोग कर सकता हूं जिन्हें बाद में पुन: उपयोग करने की आवश्यकता है

तो MVC के साथ यह 'जीवनचक्र' कैसे बदलता है?


2
मेरे बुकमार्क से कुछ संदर्भ जो यह उजागर करते हैं कि ASP.NET MVC में अनुरोध पाइपलाइन कैसे काम करती है। यह आम तौर पर मददगार होगा 1. ASP.NET MVC को समझने के लिए 2. MVC द्वारा प्रदान किए गए विभिन्न इंजेक्शन बिंदुओं को समझने और इसे समझने के लिए। https://docs.google.com/open?id=0B0_EIyBZvSQsOTU3N2Q2NDEtMWNjMS00ZTc0LWJmMjUtM2I0M2I5NDY2ZDNl [ simple-talk.com/content/article.aspx?article=1358](https://...
humblelistener

पृष्ठ चक्र इस प्रकार है: [ stackoverflow.com/questions/15066770/… [1]: stackoverflow.com/questions/15066770/…
इन्सान

पेज चक्र निम्नलिखित है: stackoverflow.com/questions/15066770/...
इनसान

जवाबों:


39

मैं आपके द्वारा बताई गई प्रत्येक गोली बिंदु पर टिप्पणी करने का प्रयास करूंगा:

आपके मास्टर पृष्ठ अभी भी MVC में मौजूद हैं और इसका उपयोग साइट को एक सुसंगत लेआउट प्रदान करने के लिए किया जाता है। वहाँ बहुत नया नहीं है।

आपके सामग्री पृष्ठ MVC की दुनिया में दृश्य बन जाएंगे। वे अभी भी आपके मास्टर पृष्ठों को समान सामग्री क्षेत्र प्रदान करते हैं।

वेबफ़ॉर्म के इवेंटहैंडिंग का उपयोग MVC में नहीं किया जाना चाहिए, इसके बजाय आपके कंट्रोलर क्लासेस और उनके एक्शन मेथड्स आपके डेटा को "मॉडल" में लोड करने में सक्षम होंगे जो व्यू में पास हो जाते हैं।

हालांकि MVC में वेबफॉर्म स्टाइल डेटाबाइंडिंग संभव है, मुझे लगता है कि यह इष्टतम समाधान नहीं है। अपने डेटा को मॉडल वर्ग में रखने के लिए बेहतर है और दृढ़ता से अपना विचार लिखें ताकि आपको उस मॉडल तक सीधी पहुंच हो। फिर इसका <%= ViewData.Model.SomeProperty %>सिंटैक्स का उपयोग करके आपके डेटा तक पहुंचने और वांछित स्थानों में प्रदर्शित करने की बात है। देखने के लिए, मेरी सिफारिश यह है कि यह भी मौजूद है भूल जाओ।

याद रखें कि एमवीसी का उपयोग करने का एक फायदा यह है कि आपके पास क्लाइंट को भेजने वाले HTML पर नियंत्रण होता है। उस शक्ति को गले लगाओ और उन समाधानों को खोजने की कोशिश करो जो तुम्हें उस नियंत्रण को बनाए रखने की अनुमति देते हैं। Webform html को आपसे छिपाने का प्रयास करता है और जब आपको आवश्यकता होती है तो HTML को कस्टमाइज़ करना अधिक कठिन हो जाता है।

मैं JQuery या अन्य समान रूप से शक्तिशाली जावास्क्रिप्ट पुस्तकालयों में से एक की सिफारिश करेगा। लेकिन सीधे HTML डोम तक पहुंचने और वेबफॉर्म कंट्रोल के आईडी मैनिंग मुद्दों से बचने के लिए उनका उपयोग करना सीखें।

आप क्लाइंट साइड पर ड्रॉपडाउन चयन में हुक करने के लिए jquery का उपयोग कर सकते हैं और मानक या ajax शैली अनुरोध सबमिट कर सकते हैं। वे अनुरोध नए पृष्ठ, पुनर्निर्देश, HTML अंश या यहां तक ​​कि JSON डेटा भी लौटा सकते हैं जिनका उपयोग मौजूदा पृष्ठ को अपडेट करने के लिए किया जा सकता है।

Asp.net सत्र आवश्यकतानुसार उपयोग किया जा सकता है।


आपके dtailed उत्तर के लिए धन्यवाद। यह वास्तव में JQuery था जिसने मुझे MVC में वापस आने के लिए प्रेरित किया। मैंने इसे संक्षेप में देखा और इसे खारिज कर दिया (अब कम से कम)। JQuery के साथ खेलने और डोम में चीजों को खोजने की कोशिश करने से बहुत दर्द हो रहा था, इसलिए मैंने सोचा कि मैं MVC में वापस आने की कोशिश करूं और अधिक
सीखूं

एमवीसी पेजों Modelमें मॉडल तक पहुंचने के लिए एक संपत्ति है, आपको इसके माध्यम से नहीं जाना है ViewData
त्सही अशेर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.