वहाँ एक ASP.Net पोस्टबैक को तोड़ने के बिना क्वेरी स्ट्रिंग को संशोधित करने के कोई तरीका है?

वोट
1

यहाँ और नेट के आसपास पढ़ने से, मैं इस सवाल का जवाब यह सोचते हैं के करीब हूँ नहीं है, लेकिन ...

मान लीजिए कि मैं एक ASP.Net पेज कभी कभी एक क्वेरी स्ट्रिंग पैरामीटर है कि करते हैं। पेज क्वेरी स्ट्रिंग पैरामीटर है, तो मैं इससे पहले कि यह बंद पट्टी दौरान या पोस्टबैक के बाद चाहते हैं। पृष्ठ पहले से ही क्लाइंट साइड स्क्रिप्ट (शुद्ध जावास्क्रिप्ट और jQuery) का एक बहुत है।

उदाहरण के लिए, कहते हैं कि मैं लोड:

http://myPage.aspx?QS=ABC

क्यूएस पैरामीटर जब पहली बार लोड और पेज है कि कॉल यह द्वारा निर्धारित है क्या पृष्ठ पर दिखाई देता नियंत्रित करने के लिए आवश्यक है। myPage.aspxप्रपत्र तत्वों की जरूरत है कि में भर जाता है और एक सबमिट बटन है कि एक पोस्टबैक करता है किया जाना है। पेज पोस्टबैक पूरा करने के बाद, मैं वापस आ URL की आवश्यकता होने के लिए:

http://myPage.aspx

आदेश जब क्वेरी स्ट्रिंग मौजूद है कहा जाता है कि क्लाइंट-साइड कोड से बचने के लिए। दूसरे शब्दों में, के बाद एक प्रस्तुत मैं क्वेरी स्ट्रिंग पैरामीटर आग के साथ जुड़े ग्राहक के पक्ष कार्रवाई नहीं करना चाहती। मैं जानता हूँ कि क्वेरी स्ट्रिंग खुद को पैरामीटर के रूप में मैं यूआरएल के लिए प्रपत्र सामग्री संलग्न करें और सिर्फ नए URL पर पुनर्निर्देशित और सबमिट करें / पोस्टबैक से बचने के सकता है, लेकिन है कि एक बहुत अधिक प्रकार codebehind बुरा डेटा और आकस्मिक स्पूफिंग से बचने के लिए की जाँच कर की आवश्यकता होगी। मैं चाहिए मैं भी codebehind में एक छिपी हुई फ़ील्ड सेट कर सकते हैं और क्वेरी स्ट्रिंग क्लाइंट साइड व्यवहार करता है, तो मैं पोस्टबैक से वापस आ रहा हूँ रद्द करने के लिए साथ-साथ इसे देख, लेकिन है कि अभी भी क्वेरी स्ट्रिंग बरकरार मूल रूप से हमेशा के लिए छोड़ देता है और मैं चाहता हूँ के बाद प्रारंभिक पृष्ठ लोड यह से छुटकारा पाने के।

कोई भी विचार या सर्वोत्तम प्रथाओं?

पुनश्च - वहाँ कुछ भी मैं Form.Action संपत्ति पोस्टबैक व्यवहार बाधित नहीं होगा साथ क्या कर सकते है?

09/12/2008 को 16:44
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


3 जवाब

वोट
2

मैं एक प्रयोग करेंगे HttpModule रोकना और यूआरएल और क्वेरी को फिर से लिखने के रूप में यह में आया है। मैं नहीं कर रहा हूँ 100% है, लेकिन मैं नहीं मानता कि इस viewstate के साथ किसी भी प्रभाव पड़ता है।

ऐसा लगता है (और दिखता है) जटिल है, लेकिन यह वास्तव में (सामान्य रूप में प्रति नेट के रूप में) काफी तुच्छ और शोधन और विस्तार के लिए ढेर करने के लिए खुला है।

09/12/2008 को 17:42
का स्रोत उपयोगकर्ता

वोट
1

iam यकीन नहीं तो यह आपके लिए क्या देख रहे हैं, लेकिन अगर सही ढंग से समझ आप यह कर सकता है:

क्यूएस मूल्य के लिए ऑन पृष्ठ लोड की जांच, इसकी नहीं वहाँ एक छिपे हुए इनपुट क्षेत्र का उपयोग करें।

क्यूएस साथ -first समय पृष्ठ लोड हो तो एक छिपा इनपुट फ़ील्ड में अपना सामान्य प्रसंस्करण और दुकान क्यूएस मूल्य है।

-यदि कोई क्यूएस तो छिपे हुए इनपुट मान का उपयोग

-After पोस्टबैक, आप एक ही पृष्ठ पर रीडायरेक्ट कर सकता है, उस बिंदु पर आप उपयोगकर्ता Request.Form [] छिपी हुई इनपुट फ़ील्ड को पुन: प्राप्त करने के लिए कर सकता है, अभी भी ठीक से डेटा लोड लेकिन क्यूएस से छुटकारा पाने के।

यह मेरे सिर में भावना बनाया है, मैं इसे अब समझ बनाने यकीन है कि नहीं हूँ, लेकिन मैं आपको यह निर्णय लेने दूँगा।

09/12/2008 को 17:34
का स्रोत उपयोगकर्ता

वोट
1

यह शायद बुरा व्यवहार है, लेकिन उन मामलों में (और लोगों को मैं सिर्फ 'रीसेट' के लिए पेज की जरूरत है), मैं बस एक ही पृष्ठ पर एक Response.Redirect है।

09/12/2008 को 16:47
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more