почему HttpWebRequest дважды запускает целевую страницу?

Я использую следующий код для размещения данных на странице default2.aspx. но когда я трассирую страницу default2.aspx она выполняется дважды, и я сталкиваюсь с ошибкой. Что случилось с моим кодом?

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();
    }
0
источник поделиться
2 ответа

Вы вызываете страницу дважды:

Первый:

writer.Write(postData.ToString());

Во-вторых:

Response.Redirect( "HTTP://локальный: 3629/WebSite6/Default2.aspx");

Это очень полезная ссылка для вашей проблемы: http://www.codeproject.com/KB/aspnet/ASP_NETRedirectAndPost.aspx

+1
источник

Когда вы закрываете автора, вы отправляете первое сообщение по умолчанию2, то ваш ответ. Directirect вызывает вторую запись.

if (writer != null)                
writer.Close();
+1
источник

Посмотрите другие вопросы по метке или Задайте вопрос