在Asp.net2.0中,使用Session传递一个值(A页面传递到B页面),
Session付值是在按钮的onclick事件中,例如:
Session["test"]="a";
this.Response.Redirect("B.aspx");
那么这个时候在B.aspx(Page_load的时候)中去不到这个Session,
而返回A.aspx,重新操作到B.aspx的时候就可以得到这个Session,
比较怪异的问题,希望得到帮助。
Session付值是在按钮的onclick事件中,例如:
Session["test"]="a";
this.Response.Redirect("B.aspx");
那么这个时候在B.aspx(Page_load的时候)中去不到这个Session,
而返回A.aspx,重新操作到B.aspx的时候就可以得到这个Session,
比较怪异的问题,希望得到帮助。
Session付值是在按钮的onclick事件中,例如:
Session["test"]="a";
this.Response.Redirect("B.aspx");
---那么这个时候在B.aspx(Page_load的时候)中去不到这个Session,
注解:第一次的时候
而返回A.aspx,重新操作到B.aspx的时候就可以得到这个Session,
注解:第二次的时候
比较怪异的问题,希望得到帮助。
方式1:
在接收页 的html代码里加上一行: <%@ Reference Page = "WebForm1.aspx" %>
WebForm1 fp=(WebForm1)Context.Handler;
this.TextBox1.Text=fp.name; //name 是第一页的public变量
Context 提供对整个当前上下文(包括请求对象)的访问。您可以使用此类共享页之间的信息。
方式2:GET方式
在发送页
public int sum=0;
int i =int.Parse(this.TextBox1.Text)*2;
Server.Transfer("WebForm2.aspx?sum="+i);
接收页
this.TextBox1.Text=Request["sum"].ToString();
or this.TextBox1.Text=Request.Params["sum"].ToString();
this.TextBox1.Text=Request.QueryString["sum"];
方法3:全局变量
发送页:
Application["sum"]=this.TextBox1.Text;
Server.Transfer("WebForm2.aspx");
接收页:
this.TextBox1.Text=(string)Application["sum"];
Application实质上是整个虚拟目录中所有文件的集合,如果想在整个应用范围内使用某个变量值,Application对象将是最佳的选择
方法4:
发送页:
1.定义静态变量: public static string str="";
2. str=this.TextBox1.Text;
Server.Transfer("webform2.aspx");
接收页:
1.引入第一页的命名空间:using WebApplication1;
2 this.TextBox1.Text=WebForm1.str;
換成
Response.Write( "<script>window.location='B.aspx';</script>");試試
注解:第二次的时候不要返回A.aspx,在B.aspx刷新一下,看结果怎么样,能得到不??