2011-06-28 22 views
7

मेरे पास एक ऐसा पृष्ठ है जो कुछ क्वेरी स्ट्रिंग पैरामीटर वाले दूसरे पृष्ठ को कॉल करता है। मैं बटन पर क्लिक करने के बाद उस पृष्ठ पर वापस लौटना चाहता हूं।एएसपीनेट कॉलिंग पेज पर रीडायरेक्ट

मुझे यह उल्लेख करना होगा कि मैं उस कोड को उपयोगकर्ता नियंत्रण में लिखता हूं और मुझे नहीं पता कि वह पृष्ठ कौन सा पृष्ठ कहलाता है।

क्या ब्राउज़र में बैक बटन की तरह कुछ है?

उत्तर

3

आप Cross Page Posting पर दिखाई दे सकता है।

वैकल्पिक रूप से, यदि आप प्रोग्राम को प्रोग्रामिक रूप से उत्पन्न कर रहे हैं तो आप url में returnUrl को शामिल कर सकते हैं उदा। http://localhost/secondpage.aspx?returnurl=firstpage.aspx

फिर आप दूसरे पृष्ठ में इस क्वेरीस्ट्रिंग पैरामीटर को पढ़ सकते हैं और अपना काम पूरा होने के बाद रीडायरेक्ट के रूप में कार्य कर सकते हैं।

12

सबसे आसान तरीका

window.back(); 

साथ ग्राहक के पक्ष जावास्क्रिप्ट का उपयोग सर्वर साइड के लिए आप Page_Load में यूआरएल संदर्भित बचाने की जरूरत है:

if(!Page.IsPostback) 
{ 
    ViewState["GoBackTo"] = Request.UrlReferrer; 
} 

और एक बटन पर क्लिक Response.Redirect का उपयोग कर:

Response.Redirect(ViewState["GoBackTo"].ToString()); 

संपादित करें: कृपया नीचे ppumkin की टिप्पणी नोट करें!

+0

पर कोड की इस पंक्ति डाल UrlReferrer हर समय, कैसे कभी भी इस रॉबर्ट तुलना में एक बेहतर तरीका है काम नहीं कर रहा है। – Aristos

+2

यदि वे सीधे पृष्ठ पर आते हैं तो यह हमेशा काम नहीं करेगा। बस इसे 'अगर (ViewState ["GoBackTo"] == null) की तरह पकड़ लें और यदि शून्य है तो डिफ़ॉल्ट खाता पृष्ठ जैसे' account.aspx' या इसी तरह के रीडायरेक्ट पर रीडायरेक्ट करें। यह अच्छा है अगर आप फॉर्म प्रमाणीकरण +1 का उपयोग नहीं करना चाहते हैं – ppumkin

2

आप Request.UrlReferrer उपयोग कर सकते हैं, लेकिन यह जरूरी नहीं कि ग्राहक से हर समय नहीं भेजा जाता है:

 Response.Redirect(Request.UrlReferrer.AbsoluteUri); 
1

पेज लोड घटना

Btn_Back.Attributes.Add("onClick", "javascript:history.back(); return false;"); 
संबंधित मुद्दे