2008-11-12 11 views
7

पर सेट किया गया है, तब भी __VIEWSTATE छुपा फ़ील्ड प्रदान किया जाता है, मैंने देखा कि __VIEWSTATE फ़ील्ड को प्रस्तुत किया गया है, भले ही मैंने पृष्ठ स्तर पर EnableViewState = "false" सेट किया हो। यदि मैं फॉर्म तत्व के लिए runat = "server" टैग को हटाता हूं तो यह फ़ील्ड प्रस्तुत नहीं किया जाता है। क्या कोई इसे समझा सकता है?जब मेरे पास EnableViewState को झूठी

उत्तर

17

__VIEWSTATE फ़ील्ड का उपयोग नियंत्रण स्थिति को संग्रहीत करने के लिए भी किया जाता है, जो वैकल्पिक नहीं है। इसके अलावा, दृश्य स्थिति में निहित जानकारी का उपयोग पोस्टबैक को सत्यापित करने के लिए किया जाता है, अगर मुझे गलत नहीं है (और सत्यापन सक्षम है, जो डिफ़ॉल्ट है)। तो जब तक आपके पास runat = "server" के साथ फॉर्म है, तो आपके पास व्यूस्टेट फ़ील्ड होगा। हालांकि, यदि आप सभी व्यूस्टेट को अक्षम करते हैं, तो आपको बहुत छोटे फ़ील्ड आकार का ध्यान रखना चाहिए।

+0

यह सही है, पृष्ठ पर पोस्टबैक को "प्रमाणीकृत" करने के लिए व्यूस्टेट का भी उपयोग किया जाता है। –

+2

हाँ, यहां तक ​​कि अगर कोई नियंत्रण स्थिति का उपयोग नहीं किया जाता है, तो भी ViewState छिपे हुए फ़ील्ड को केवल IsPostBack प्रॉपर्टी –

+0

के लिए प्रदान किया जाता है। दृश्य के पास एक खाली मान होना संभव है, मैंने यहां जवाब पोस्ट किया है: http://stackoverflow.com/questions/2432 9 72/पूरी तरह से हटाने-देखने के लिए-विशिष्ट-पृष्ठों/5864040 # 5864040 – Arjang

0

युक्ति: Asp.net में, यदि आपको पूरी तरह से __VIEWSTATE को पट्टी करने की आवश्यकता है, तो पृष्ठ को ओवरराइड करें। रेंडर विधि, पृष्ठ को एक स्ट्रिंग में प्रस्तुत करें, और __VIEWSTATE टेक्स्ट को बाहर निकालें।

+3

धन्यवाद। यह '

' तत्व से 'runat =" सर्वर "' को हटाकर भी किया जा सकता है। –

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