2011-08-02 14 views
0

私はdefault2.aspxページにデータを投稿するために次のコードを使用します。しかし、私がdefault2.aspxページをトレースすると、2回実行され、エラーが発生します。 私のコードで何が問題になっていますか?なぜHttpWebRequestがターゲットページを2回実行するのですか?

string url = "http://localhost:3629/WebSite6/Default2.aspx"; 
     StringBuilder postData = new StringBuilder(); 
     postData.Append("first_name=" + HttpUtility.UrlEncode("Raymond") + "&"); 
     postData.Append("last_name=" + HttpUtility.UrlEncode("Sanaz")); 
     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()); 
     } 
     finally 
     { 
      if (writer != null) 
       writer.Close(); 
     } 

     Response.Redirect("http://localhost:3629/WebSite6/Default2.aspx"); 

Default2.aspx:

protected void Page_Load(object sender, EventArgs e) 
    { 
    s= Request.Form["first_name"].ToString(); 
    } 

答えて

1

あなたは二回のページを呼び出している:

まず:

writer.Write(postData.ToString());

第二:

のResponse.Redirect( "のhttp:// localhostを:3629/WebSite6/Default2.aspx");

これはあなたの問題のために非常に役立つリンクです:あなたはライターを閉じるとhttp://www.codeproject.com/KB/aspnet/ASP_NETRedirectAndPost.aspx

+0

はい、あなたは正しいです。ありがとう –

+1

これはあなたの問題に非常に役立つリンクです:http://www.codeproject.com/KB/aspnet/ASP_NETRedirectAndPost.aspx –

1

、あなたは、あなたののResponse.Redirectは、第2のポストを引き起こしている、default2への最初の投稿を発行します。

if (writer != null)     
writer.Close(); 
+0

しかし、私は 'Response.Redirect(http: /localhost:3629/WebSite6/Default2.aspx ");'私はブラウザに表示できません。私は何をすべきか? –

+0

達成しようとしていることの背景をもう少し教えてください。 – WooHoo

+0

私は2つの異なるウェブサイトを持っています、最初のウェブサイトは登録リンクを持っていますが、登録は2番目のウェブサイトにあります。ユーザーが最初のウェブサイトの登録リンクをクリックすると、最初のウェブサイトが2番目のウェブサイトの登録フォームにパラメータを送信し、そのユーザーが2番目のウェブサイトの登録フォームを完了した後、私のウェブサイトがユーザーを一部のパラマターと最初のウェブサイトにリダイレクトします。オンライン決済のようなもの。 –

関連する問題