然后跳转到页面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页面怎么接受我传过去的数据????
10 个解决方案
#1
建议使用 Server.Transfer("B.aspx") 这个是服务端的转发 Url上是看不到变化的
B页面使用Request["控件ID"] 或者在B页面使用 Page.PreviousPage 对象的FindControl方法
B页面使用Request["控件ID"] 或者在B页面使用 Page.PreviousPage 对象的FindControl方法
#2
Response.Redirect("B.aspx?a=1&b=2")
B.aspx:
string a = Requst["a"];
就能接收从A.aspx带过去的a了.
B.aspx:
string a = Requst["a"];
就能接收从A.aspx带过去的a了.
#3
Post传值的话:Request.Form["name"].
name:是表单中控件的名称
name:是表单中控件的名称
#4
都是在后台,还没有把结果回给后台,那再post感觉绕远了,用session传过去,用完之后马上清空就完了
#5
就是啊,用session存一下就行了吧,不用这么复杂吧
#6
按照你那个写法,data中应该包含参数名称,比如:
string data="name=123";
然后在B中就可以使用Request["name"]接收了
不过还是使用Server.Transfer("B.aspx?name=123")吧,这样跳转是直接在服务器端进行的,url不会发生变化
string data="name=123";
然后在B中就可以使用Request["name"]接收了
不过还是使用Server.Transfer("B.aspx?name=123")吧,这样跳转是直接在服务器端进行的,url不会发生变化
#7
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
<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
#8
貌似有一种地址重写可以隐匿地址,有一个接口,IHttpModule ,BeginRequest事件里添加地址转换,然后server.transfer内部重定向过去
#9
同意1楼,用Server.Transfer,这样最简洁。
如果非要用httpwebrequest的话,B.ASPX页面接收参数就跟平常一样,用Request.Form["参数名"]来获取。
如果非要用httpwebrequest的话,B.ASPX页面接收参数就跟平常一样,用Request.Form["参数名"]来获取。
#10
用post过去可以接收!!
但是不能跳转过去
跳过去了流就改变!
得不到传送的数据!
System.IO.Stream s = Request.InputStream;
int count = 0;
byte[] buffer = new byte[1024];
StringBuilder builder = new StringBuilder();
while ((count = s.Read(buffer, 0, 1024)) > 0)
{
builder.Append(Encoding.UTF8.GetString(buffer, 0, count));
}
但是不能跳转过去
跳过去了流就改变!
得不到传送的数据!
System.IO.Stream s = Request.InputStream;
int count = 0;
byte[] buffer = new byte[1024];
StringBuilder builder = new StringBuilder();
while ((count = s.Read(buffer, 0, 1024)) > 0)
{
builder.Append(Encoding.UTF8.GetString(buffer, 0, count));
}
#1
建议使用 Server.Transfer("B.aspx") 这个是服务端的转发 Url上是看不到变化的
B页面使用Request["控件ID"] 或者在B页面使用 Page.PreviousPage 对象的FindControl方法
B页面使用Request["控件ID"] 或者在B页面使用 Page.PreviousPage 对象的FindControl方法
#2
Response.Redirect("B.aspx?a=1&b=2")
B.aspx:
string a = Requst["a"];
就能接收从A.aspx带过去的a了.
B.aspx:
string a = Requst["a"];
就能接收从A.aspx带过去的a了.
#3
Post传值的话:Request.Form["name"].
name:是表单中控件的名称
name:是表单中控件的名称
#4
都是在后台,还没有把结果回给后台,那再post感觉绕远了,用session传过去,用完之后马上清空就完了
#5
就是啊,用session存一下就行了吧,不用这么复杂吧
#6
按照你那个写法,data中应该包含参数名称,比如:
string data="name=123";
然后在B中就可以使用Request["name"]接收了
不过还是使用Server.Transfer("B.aspx?name=123")吧,这样跳转是直接在服务器端进行的,url不会发生变化
string data="name=123";
然后在B中就可以使用Request["name"]接收了
不过还是使用Server.Transfer("B.aspx?name=123")吧,这样跳转是直接在服务器端进行的,url不会发生变化
#7
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
<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
#8
貌似有一种地址重写可以隐匿地址,有一个接口,IHttpModule ,BeginRequest事件里添加地址转换,然后server.transfer内部重定向过去
#9
同意1楼,用Server.Transfer,这样最简洁。
如果非要用httpwebrequest的话,B.ASPX页面接收参数就跟平常一样,用Request.Form["参数名"]来获取。
如果非要用httpwebrequest的话,B.ASPX页面接收参数就跟平常一样,用Request.Form["参数名"]来获取。
#10
用post过去可以接收!!
但是不能跳转过去
跳过去了流就改变!
得不到传送的数据!
System.IO.Stream s = Request.InputStream;
int count = 0;
byte[] buffer = new byte[1024];
StringBuilder builder = new StringBuilder();
while ((count = s.Read(buffer, 0, 1024)) > 0)
{
builder.Append(Encoding.UTF8.GetString(buffer, 0, count));
}
但是不能跳转过去
跳过去了流就改变!
得不到传送的数据!
System.IO.Stream s = Request.InputStream;
int count = 0;
byte[] buffer = new byte[1024];
StringBuilder builder = new StringBuilder();
while ((count = s.Read(buffer, 0, 1024)) > 0)
{
builder.Append(Encoding.UTF8.GetString(buffer, 0, count));
}