सवाल ASP.Net में वर्तमान पृष्ठ पर रीडायरेक्ट करें


मैं रीडायरेक्ट कैसे कर सकता हूं Server.Transfer() उसी पृष्ठ पर जो वर्तमान में दिखाया गया है?

मैं जमा करने के बाद एक मंजूरी देनी चाहता हूँ।

मैं इसे प्राप्त करने के लिए अन्य / बेहतर तरीकों का उपयोग कैसे कर सकता हूं?


44
2018-04-21 16:26


मूल


यदि आप केवल सबमिट करने के बाद ही साफ़ फॉर्म चाहते हैं, तो आखिर में अपने कोड फ़ील्ड मानों को अपने कोड में साफ़ करें, फिर उसी पृष्ठ पर रीडायरेक्ट करें - Satinder singh


जवाब:


क्यूं कर Server.Transfer? Response.Redirect(Request.RawUrl) आपको जो चाहिए वह आपको मिलेगा।


101
2018-04-21 16:28



मुझे लगता है कि सर्वर। ट्रांसफर बेहतर विकल्प है। लेकिन आपका समाधान चाल भी करता है। मैं अब सर्वर का उपयोग कर रहा हूँ। ट्रांसफर (Request.Path); - Fabiano
@ डैनियल: यह एक बर्बाद दौर यात्रा नहीं है। अक्सर आप नहीं चाहते हैं कि आपके उपयोगकर्ता के ब्राउज़र पृष्ठ में अंतिम अनुरोध HTTP पोस्ट का नतीजा हो। उपयोगकर्ता अक्सर उस क्रिया को रीफ्रेश और दोहराएंगे। स्थानांतरण ठीक नहीं करता है, लेकिन रीडायरेक्ट करता है। - kervin
@ डैनियल: बिल्कुल, कभी-कभी पोस्ट-रीडायरेक्ट-पैटर्न प्राप्त करने के बारे में सुना है? यदि यहां नहीं है तो आपके लिए कुछ जानकारी है: en.wikipedia.org/wiki/Post/Redirect/Get - epitka


http://en.wikipedia.org/wiki/Post/Redirect/Get

ASP.Net में इस पैटर्न को लागू करने का सबसे आम तरीका उपयोग करना है Response.Redirect (Request.RawUrl)

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

Response.Redirect () एक अपशिष्ट दौर यात्रा नहीं है। यदि आप एक ऐसी स्क्रिप्ट पर पोस्ट करते हैं जो फ़ॉर्म को साफ़ करता है Server.Transfer () और पुनः लोड करने के लिए आपको अधिकांश ब्राउज़रों द्वारा दोबारा पोस्ट करने के लिए कहा जाएगा क्योंकि अंतिम क्रिया HTTP पोस्ट थी। इससे आपके उपयोगकर्ता अनजाने में कुछ क्रियाएं दोहरा सकते हैं, उदाहरण के लिए। एक दूसरा ऑर्डर दें जिसे बाद में वॉयस करना होगा।


16
2018-04-21 16:56