.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 + "&parameter2=" + 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&param2=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();

    }

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。