C# 带重定向的ASP.net帖子?

C# 带重定向的ASP.net帖子?,c#,asp.net,post,C#,Asp.net,Post,基本上,我想获取一个URLString,分解所有变量及其值,然后将它们发布到另一个页面,并重定向到taht页面。。我如何在没有表单和实际提交等情况下完成此操作 这就是我得到的 string url = "http://www.blah.com/xyz.aspx"; StringBuilder postData = new StringBuilder(); postData.Append("CustomerID=" + HttpUtility.UrlEn

基本上,我想获取一个URLString,分解所有变量及其值,然后将它们发布到另一个页面,并重定向到taht页面。。我如何在没有表单和实际提交等情况下完成此操作

这就是我得到的

   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();
        }   

因为您不能同时重定向和发布,所以您唯一的选择是使用页面加载时提交的表单呈现html页面。当然,除非你能让接收者接受url中的参数。如果它是您要“发布”到的asp.net页面,那么您是否在querystring中发送数据并不重要,当然,除非您发送的是大量数据


请记住,重定向与告诉浏览器“改为转到此页面”相同。此信息位于您返回的http标头中。因此,在呈现自动提交的表单时不会有太多开销。

您需要将用户重定向到的页面做什么?最好的选择是使用会话变量在重定向时在页面之间传递数据,除非您希望保留最初传递给页面的表单

您可以使用如下代码将信息添加到会话项中

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

我不确定这是否是正确的策略-您是否考虑过处理请求或内部重定向?

您无法重定向和发布。Dang这就是我的懒惰但不想做的:)好的,谢谢Mangod point Frazell,但会话仅在您重定向到同一应用程序内的页面时有效。是的。我假设它在同一个应用程序中,但我们需要更多信息才能确定。