asp.net页面间传值的几种方法
表单提交
传送页面代码
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>表单提交</title>
<script type="text/javascript" language="javascript">
function post()
{
forPost.action="DestinationPage.aspx";
forPost.submit();
}
</script>
</head>
<body>
<form id="forPost" method="post">
方式一:表单提交<br />
<input type="text" id="SourceData2" runat="server"/>
<input type="button" id="btnTransfer1" value="提交" onclick="post();" />
</form>
</body>
</html>
接收页面代码
protected void Page_Load(object sender, EventArgs e)
{
string a = Request.Form["SourceData2"].ToString();
txt1.Value = a;
}
QueryString传值
传送页面代码
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>QueryString</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<input type="text" id="txt1" runat="server" />
<input type="text" id="txt2" runat="server" />
<input type="button" id="btn1" value="提交" runat="server" onserverclick="btn1_ServerClick" />
</div>
</form>
</body>
</html>
protected void btn1_ServerClick(object sender, EventArgs e)
{
string aa = txt1.Value;
string bb = txt2.Value;
string url = "DestinationPage5.aspx?parameter1=" + aa + "¶meter2=" + bb;
Response.Redirect(url, false);
}
接收页面代码
protected void Page_Load(object sender, EventArgs e)
{
txt1.Value = Request.QueryString["parameter1"].ToString();
txt2.Value = Request.QueryString["parameter2"].ToString();
}
链接地址传值
传送页面代码
<a href="DestinationPage6.aspx?param1=1111¶m2=2222">跳转</a>
接收页面代码
protected void Page_Load(object sender, EventArgs e)
{
txt1.Value = Request["param1"];
txt2.Value = Request["param2"];
}
Context传值
通过Context传值,在传送页面之前,将需要传递到其他页面的值存在Context中。
传送页面代码
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Context</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<input type="text" id="txt1" runat="server" />
<input type="button" id="btn1" value="提交" runat="server" onserverclick="btn1_ServerClick" />
</div>
</form>
</body>
</html>
protected void btn1_ServerClick(object sender, EventArgs e)
{
Context.Items["value"] = txt1.Value;
Server.Transfer("DestinationPage3.aspx");
}
接收页面代码
protected void Page_Load(object sender, EventArgs e)
{
string a = Context.Items["value"].ToString();
txt1.Value = a;
}
Server.Transfer传值
传送页面代码
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Server.Transfer</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<input type="text" id="txt1" runat="server" />
<input type="button" id="btn1" value="提交" runat="server" onserverclick="btn1_ServerClick" />
</div>
</form>
</body>
</html>
View Code
protected void btn1_ServerClick(object sender, EventArgs e)
{
Server.Transfer("DestinationPage4.aspx");
}
public string Value
{
get { return txt1.Value; }
}
接收页面代码
View Code
public partial class Transfer_DestinationPage4 : System.Web.UI.Page
{
private Transfer_SourcePage4 sourcePage;
protected void Page_Load(object sender, EventArgs e)
{
sourcePage = (Transfer_SourcePage4)Context.Handler;
string aa = sourcePage.Value;
txt1.Value = aa;
}
}
Cookie传值
传送页面代码
View Code
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Cookie</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<input type="text" id="txt1" runat="server" />
<input type="button" id="btn1" value="提交" runat="server" onserverclick="btn1_ServerClick" />
</div>
</form>
</body>
</html>
protected void btn1_ServerClick(object sender, EventArgs e)
{
string aa = txt1.Value;
HttpCookie cookie = new HttpCookie("MyCookie", aa);
Response.Cookies.Add(cookie);
string url = "DestinationPage8.aspx";
Response.Redirect(url, false);
}
接收页面代码
View Code
protected void Page_Load(object sender, EventArgs e)
{
HttpCookie myCookie = Request.Cookies["MyCookie"];
txt1.Value = myCookie.Value;
}
Session传值
通过Session取值,在一个页面中赋值,在其他页面中共享。为避免造成Session值的混乱无序,应尽量少用Session传非公共的变量。Session比较适合用来保存一些公共变量。
传送页面代码
View Code
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Session传值</title>
</head>
<body>
<form runat="server">
<input type="text" id="txt1" runat="server" />
<input type="button" id="btn1" value="提交" runat="server" onserverclick="btn1_ServerClick" />
</form>
</body>
</html>
protected void btn1_ServerClick(object sender, EventArgs e)
{
Session["value"] = txt1.Value;
Response.Redirect("DestinationPage2.aspx");
}
接收页面代码
View Code
protected void Page_Load(object sender, EventArgs e)
{
txt1.Value = Session["value"].ToString();
}
Application传值
此种方法不常使用,因为Application在一个应用程序域范围共享,所有用户可以改变及设置其值,故只应用于计数器等需要全局变量的地方。
传送页面代码
View Code
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Application</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<input type="text" id="txt1" runat="server" />
<input type="button" id="btn1" value="提交" runat="server" onserverclick="btn1_ServerClick" />
</div>
</form>
</body>
</html>
protected void btn1_ServerClick(object sender, EventArgs e)
{
string aa = txt1.Value;
Application["param1"] = aa;
string url = "DestinationPage7.aspx";
Response.Redirect(url, false);
}
接收页面代码
View Code
protected void Page_Load(object sender, EventArgs e)
{
txt1.Value = Application["param1"].ToString();
}