2011-12-15 14 views
7

मैंने सुना है कि एमवीसी .NET स्टेटलेस है। इसका क्या प्रभाव है और यह क्यों है कि एमवीसी स्टेटलेस है।एएसपी.नेट एमवीसी स्टेटलेस है?

+3

शायद इसका मतलब यह था कि यह एएसपी.NET वेब पृष्ठों की तरह दृश्यमान नहीं रखता है। यह सच है। यह विकल्प HTTP की स्टेटलेस प्रकृति के साथ बेहतर फिट बैठता है और संभवतः इसे क्यों चुना गया था। केवल डिजाइनर किसी भी गारंटी के साथ कह सकते हैं, हालांकि, मैं, एक के लिए, इस तथ्य में खुश हूं। – tvanfosson

+0

क्या आप अधिक जानकारी या लिंक प्रदान कर सकते हैं? चूंकि यह अभी खड़ा है, आपका प्रश्न एक संदिग्ध "तथ्य" के अज्ञात बयान पर आधारित है। – 7hi4g0

उत्तर

7

एमवीसी स्टेटलेस है क्योंकि HTTP है। HTTP में कुछ भी नहीं है जो इंगित करता है कि सत्र कब शुरू होता है या समाप्त होता है।

प्रत्येक वेब ढांचा क्वेरी या स्ट्रिंग या फोरम पोस्ट जैसी कुकी या अनुरोध/प्रतिक्रिया सुविधाओं का उपयोग करके इसे दूर करने का प्रयास करता है।

+3

आपका मतलब HTTP पर सब कुछ स्टेटलेस है? वेबफॉर्म भी HTTP पर चलता है। –

+2

@ हेनक वेबफॉर्म राज्य को बनाए रखने के लिए व्यूस्टेट और POSTs का उपयोग करता है। – Ryan

+2

@ हेंकहोल्टरमैन: हाँ। HTTP स्टेटलेस है। कोई "सत्र" नहीं है। वेबफॉर्म एक टाइमआउट का उपयोग करके और अनुरोध/प्रतिक्रिया संरचना पर अपनी जानकारी परिवहन करके एक सत्र की नकल करता है। जब उपयोगकर्ता अपने वेब ब्राउज़र/"सत्र" को बंद करता है तो आपको कभी भी HTTP में अधिसूचित नहीं किया जाएगा। – jgauffin

5

एमवीसी (पूरी तरह से) स्टेटलेस नहीं है। कोई वेब ढांचा नहीं है।

मुझे लगता है कि यह इस तथ्य को संदर्भित करता है कि एमवीसी _VIEWSTATE फ़ील्ड को समाप्त कर देता है।

लेकिन एक लिंक या अधिक जानकारी प्रदान करें।

2

मैं कहूंगा कि सभी वेब संचार SignalR [Async signaling library for ASP.NET to help build real-time, multi-user interactive web applications] की तरह नई प्रौद्योगिकियों के कुछ को छोड़कर राज्यविहीन है।

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

5

वेब स्टेटलेस है, इसलिए http के शीर्ष पर बनाया गया कुछ भी स्टेटलेस है। स्टेटलेस द्वारा मेरा मतलब है कि प्रत्येक अनुरोध/प्रतिक्रिया एक परमाणु इकाई है जिसमें किसी भी पिछले अनुरोध का कोई ज्ञान नहीं है।

http के साथ तंत्र हैं जो आपको सत्र और एप्लिकेशन जैसे अनुरोधों के बीच कुछ प्रकार के राज्य को रखने की अनुमति देते हैं, लेकिन आम तौर पर, इन्हें जितना संभव हो उतना छोटा उपयोग किया जाना चाहिए।

वेबफॉर्म व्यूस्टेट और पोस्टबैक पेश करके राज्य के भ्रम पैदा करने का प्रयास करता है। लेकिन यह इस तथ्य को नहीं बदलेगा कि वेब स्टेटलेस है।

8

राज्य several means के माध्यम से ASP.NET (MVC और WebForms) में किया जाता है:

  • सत्र
  • कुकीज़
  • फार्म पदों
  • आवेदन
  • क्वेरी स्ट्रिंग
  • कैश
  • संदर्भ

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

एमवीसी वास्तव में स्टेटलेस नहीं है, लेकिन यह एएसपी.नेट - व्यूस्टेट में स्थायी स्थिति के सबसे आम तरीकों में से एक को हटा देता है।

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