2012-04-13 16 views
13

मैं अपने वेब एप्लिकेशन के लिए एक रजिस्टर पेज बना देता हूं। एप्लिकेशन की आवश्यकता है कि उपयोगकर्ता सफलतापूर्वक एक नया खाता पंजीकृत करने के बाद, पृष्ठ "सफलतापूर्वक पंजीकरण करें" संदेश दिखाएगा, फिर लॉगिन पृष्ठ पर स्विच करने से पहले 5 सेकंड तक प्रतीक्षा करें। मैंने Thread.Sleep(5000) का उपयोग किया। यह 5 सेकंड तक प्रतीक्षा करता है लेकिन यह संदेश प्रदर्शित नहीं करता है। क्या कोई मेरी मदद कर सकता है?रीडायरेक्ट से पहले समय देरी

void AccountServiceRegisterCompleted(object sender, RegisterCompletedEventArgs e) 
    { 
     if (e.Result) 
     { 
      lblMessage.Text = "Register successfully"; 

      Thread.Sleep(5000); 
      this.SwitchPage(new Login()); 
     } 
     else 
     { 
      ... 
     } 
    } 
+4

एएसपी .NET वेबफॉर्म? MVC? अन्य? कृपया उचित रूप से टैग करें क्योंकि यह आपके द्वारा प्राप्त उत्तरों को प्रभावित करता है। – Yuck

+0

आप पंजीकरण पृष्ठ पर तत्काल रीडायरेक्ट क्यों नहीं करते हैं, एक ध्वज के साथ जो 'सफल पंजीकरण' कहता है; जीईटी पैरामीटर के साथ पुनर्निर्देशन? रजिस्टर = सत्य या झंडा दिखाने के लिए कुछ पर्याप्त है। यह भी अधिक उपयोगकर्ता के अनुकूल है। – Bowersbros

उत्तर

28

Thread.Sleep(5000) केवल 5 सेकंड के लिए अपने धागा निलंबित कर देता है - इस सूत्र पर कोई कोड इस समय के दौरान निष्पादित किया जाएगा। तो कोई संदेश या कुछ और नहीं।

यदि यह एक एएसपी.नेट ऐप है, तो ग्राहक नहीं जानता कि सर्वर पर क्या चल रहा है और 5 सेकंड के लिए सर्वर की प्रतिक्रिया का इंतजार कर रहा है। आपको इस तर्क को मैन्युअल रूप से कार्यान्वित करना होगा।

setTimeout(function(){location.href = 'test.aspx';}, 5000); 

या HTTP शीर्षक जोड़कर: उदाहरण के लिए, या तो JavaScript का उपयोग करने

Response.AddHeader("REFRESH","5;URL=test.aspx"); 

या meta टैग:

<meta http-equiv="refresh" content="5; url=test.aspx" /> 

more info देखते हैं।

यदि यह डेस्कटॉप एप्लिकेशन है तो आप timers जैसे कुछ का उपयोग कर सकते हैं। और कभी भी थ्रेड जैसे कुछ थ्रेड (यूआई थ्रेड) लटकते हैं। सो जाओ।

+2

व्यक्तिगत रूप से, मैं HTTP शीर्षलेख पसंद करता हूं, इसलिए वोट ++ – Giuliano

+0

धन्यवाद लोरॉन्ड, स्पष्टीकरण बहुत स्पष्ट और समझने में आसान है। मैं इन सुझावों का उपयोग करने की कोशिश करूंगा। – user1331344

+0

क्या होगा यदि यह एक लॉगिन फॉर्म है और यह एक अपडेट पैनेल के अंदर है? मैंने उपर्युक्त विधि की कोशिश की और उसने मुझे रीडायरेक्ट नहीं किया:/ – SearchForKnowledge

0

केवल मेटा टैग एक और पेज

विज्ञापन मेटा टैग गतिशील

Response.AddHeader("REFRESH", "5;URL=~/account/login");

इस कोड को विज्ञापन वर्तमान पृष्ठ और अपने पृष्ठ पर एक मेटा टैग एक पृष्ठ पर में रीडायरेक्ट करेगा होगा पर रीडायरेक्ट करने के लिए पर्याप्त है उपरोक्त निर्दिष्ट समय।

+0

इस -2 चिह्न किसने किया? –

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