.net中常用的几种页面间传递参数的方法
1.session方便,但容易丢失;
2.application全局;
3.cookie简单,但是可能不支持,容易被伪造;
4.input type="hide"隐藏域,简单,但容易被伪造
5.url参数简单,显示与地址栏,但是长度有限;
6.数据库稳定,安全,但性能较弱;
表单提交
传递页面代码 <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传值
页面代码 <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; }
Cookie传值
页面代码 <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); }
接收代码 protected void Page_Load(object sender, EventArgs e) { HttpCookie myCookie = Request.Cookies["MyCookie"]; txt1.Value = myCookie.Value; }
Session传值
通过Session取值,在一个页面中赋值,在其他页面中共享。为避免造成Session值的混乱无序,应尽量少用Session传非公共的变量。Session比较适合用来保存一些公共变量。
页面 <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"); }
接收值 protected void Page_Load(object sender, EventArgs e) { txt1.Value = Session["value"].ToString(); }
Application传值
此种方法不常使用,因为Application在一个应用程序域范围共享,所有用户可以改变及设置其值,故只应用于计数器等需要全局变量的地方。
页面 <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); }
接收 protected void Page_Load(object sender, EventArgs e) { txt1.Value = Application["param1"].ToString(); }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。