2010-11-17 12 views
5

असल में मैं एक यूआरएलस्ट्रिंग लेना चाहता हूं और सभी चर और उनके मूल्यों को तोड़ना चाहता हूं और उन्हें पृष्ठ पर रीडायरेक्ट के साथ किसी दूसरे पृष्ठ पर पोस्ट करना चाहता हूं .. मैं इसे फॉर्म और एक्ट्यूअल सबमिट करने आदि के बिना कैसे खींच सकता हूं ...एएसपीनेट पोस्ट?

यह मैं क्या मिल गया है ..

string url = "http://www.blah.com/xyz.aspx"; 


     StringBuilder postData = new StringBuilder(); 

     postData.Append("CustomerID=" + HttpUtility.UrlEncode("Hello Rico") + "&"); 
     postData.Append("FirstName=" + HttpUtility.UrlEncode("HelloFirstName")); 
     //ETC for all Form Elements  

     // Now to Send Data.  
     StreamWriter writer = null; 

     HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); 
     request.Method = "POST"; 
     request.ContentType = "application/x-www-form-urlencoded"; 
     request.ContentLength = postData.ToString().Length; 
     try 
     { 
      writer = new StreamWriter(request.GetRequestStream()); 
      writer.Write(postData.ToString()); 
      writer.Flush(); 

      HttpWebResponse WebResp = (HttpWebResponse)request.GetResponse(); 

      //Now, we read the response (the string), and output it. 
      Stream Answer = WebResp.GetResponseStream(); 
      StreamReader _Answer = new StreamReader(Answer); 
      Response.Write(_Answer.ReadToEnd()); 

     } 
     finally 
     { 
      if (writer != null) 
       writer.Close(); 
     } 
+1

आप रीडायरेक्ट और पोस्ट नहीं कर सकते हैं। –

उत्तर

2

जब से तुम अनुप्रेषित और एक ही समय में पोस्ट नहीं कर सकते, अपने ही एकमात्र विकल्प एक रूप है कि पृष्ठ लोड पर प्रस्तुत किया जाता है के साथ एक html पृष्ठ प्रस्तुत करने के लिए है। जब तक आप रिसीवर पाठ्यक्रम के यूआरएल में पैरामीटर स्वीकार नहीं कर सकते हैं। यदि यह एक एएसपीनेट पृष्ठ है जिसे आप "पोस्ट" करना चाहते हैं, तो यह वास्तव में कोई फर्क नहीं पड़ता कि आप क्वेरीस्ट्रिंग में डेटा भेजते हैं, बशर्ते कि आप बड़ी मात्रा में डेटा भेज रहे हों।

याद रखें कि रीडायरेक्ट करना, ब्राउज़र को "इसके बजाय इस पृष्ठ पर जाने" के समान कहता है। यह जानकारी आपके द्वारा लौटने वाले http शीर्षलेख में है। इसलिए, ऑटो सबमिट करने वाले फ़ॉर्म को प्रस्तुत करने में बहुत अधिक ओवरहेड नहीं है।

+0

डांग जो मेरी आलसी है लेकिन वह नहीं करना चाहता था :) ठीक है धन्यवाद आदमी – Rico

0

यह क्या है कि आपको उस पृष्ठ की आवश्यकता है जिसे आप उपयोगकर्ता को रीडायरेक्ट करने के लिए कर रहे हैं? आपका सबसे अच्छा विकल्प सत्र वैरिएबल का उपयोग रीडायरेक्शन पर पृष्ठों के बीच डेटा को पास करने के लिए करना है जबतक कि आप उस फॉर्म को संरक्षित नहीं करते हैं जो पृष्ठ पर शुरू में पारित किया गया था।

आप सत्र आइटम में जानकारी जोड़ने के लिए निम्न जैसे कोड का उपयोग कर सकते हैं।

Session.Item("CustomerID") = "CustomerID=" & ID.ToString 
+0

अच्छा बिंदु फ्रैज़ेल, लेकिन सत्र केवल तभी काम करता है जब आप एक ही एप्लिकेशन के भीतर किसी पृष्ठ पर रीडायरेक्ट कर रहे हों। –

+0

हां सच है। मुझे लगता है कि यह एक ही आवेदन के भीतर था, लेकिन हमें निश्चित होने से पहले हमें और जानकारी चाहिए। –

1

मुझे यकीन है कि यह सही रणनीति है नहीं कर रहा हूँ - या तो आप या जोड़ तोड़ अनुरोधों के लिए HttpModules आंतरिक पुनर्निर्देशन के लिए Server.Transfer पर विचार किया है?