日期:2014-05-17  浏览次数:20450 次

C# 后台POST数据到另一个页面
页面A 后台POST数据到页面B
然后跳转到页面B
因为要隐藏传送的数据 所以不能在跳转的url上参数传值
string data="123";
WebRequest req = WebRequest.Create("http://localhost/SCHXR.Route.TestUtils/Route.aspx");
  req.ContentType = "application/x-www-form-urlencoded";
  req.Method = "POST";

  byte[] bytes = System.Text.Encoding.UTF8.GetBytes(data);
  req.ContentLength = bytes.Length;

  System.IO.Stream os = req.GetRequestStream();
  os.Write(bytes, 0, bytes.Length);
  os.Close();
  Response.Redirect("B.aspx");


请问在B页面怎么接受我传过去的数据????



------解决方案--------------------
建议使用 Server.Transfer("B.aspx") 这个是服务端的转发 Url上是看不到变化的
B页面使用Request["控件ID"] 或者在B页面使用 Page.PreviousPage 对象的FindControl方法
------解决方案--------------------
按照你那个写法,data中应该包含参数名称,比如:
string data="name=123";

然后在B中就可以使用Request["name"]接收了

不过还是使用Server.Transfer("B.aspx?name=123")吧,这样跳转是直接在服务器端进行的,url不会发生变化
------解决方案--------------------
Post Form到另一个页面

<asp:Button 
ID="Button1" 
PostBackUrl="~/TargetPage.aspx"
runat="server"
Text="Submit" />

被Post的页面有几种方法取得值,具体做法见:
Cross-Page Posting in ASP.NET Web Pages
http://msdn.microsoft.com/en-us/library/ms178139.aspx