• ASP.NET学习之页面传值(7)_Cookie传值


    【关键点:
    1、创建一个Cookie对象
    2、在对象中封装要传输的数据【可以创建一个cookie对象,往里面添加多个键值对,也可以创建多个Cookie,每一个Cookie中存放一个键值对】
    3、设置cookies过期的时间
    4、将Cookies对象添加到Response.cookies中
    5、页面跳转
    【注意:在接收数据时,一定要做判空判断】
    】
    IndexPage.aspx页面
    <form runat="server">
            <div>
                <input id="Text1" type="text" runat="server"/>
                <input id="Text2" type="text" runat="server"/>
                <input id="Button1" value="传值" type="button" runat="server" onserverclick="ok_ServerClick"/>
            </div>
    </form>
    
    IndexPage.aspx.cs后台代码:
    public void ok_ServerClick(object sender, EventArgs e)
            {
                //给变量赋值
                string name = Text1.Value;
                string pass = Text2.Value;
                
                #region 单值传递
                ////创建一个Cookie对象
                //HttpCookie Namecookie = new HttpCookie("Name", name);
                //HttpCookie Passcookie = new HttpCookie("Pass", pass);
                ////将Cookie对象添加到Cookies集合中
                //Response.Cookies.Add(Namecookie);
                //Response.Cookies.Add(Passcookie); 
                #endregion
    
                #region 多值传递
                //多值传递
                HttpCookie cookies = new HttpCookie("Login");
                //要传输的数据的封装【方法一】
                //cookies.Values.Add("Name", name);
                //cookies.Values.Add("Pass", pass);
                //要传输的数据的封装【方法二】
                cookies.Values["Name"] = name;
                cookies.Values["Pass"] = pass;
                cookies.Expires = DateTime.MaxValue;  //设置Cookie的过期的时间
                Response.Cookies.Add(cookies); //将Cookie集合存放到Cookies中【必须要有,不然接收时,Cookies取不到值】
                #endregion
                //页面跳转
                Response.Redirect("ResultIndex.aspx");
            }
    ResultPage.aspx.cs后台代码:
     protected void Page_Load(object sender, EventArgs e)
            {
                #region Cookie单值接收
                //HttpCookie NameCookie = Request.Cookies["Name"];
                //string name = NameCookie.Value;
                //HttpCookie PassCookie = Request.Cookies["Pass"];
                //string pass = PassCookie.Value; 
                #endregion
    
                if (Request.Cookies["Login"]!=null)
                {
                   //获得数据方法一:
                    HttpCookie cookie = Request.Cookies["Login"];
                    string name = cookie["Name"];
                    string pass = cookie["Pass"];
                    //获得数据方法二:
                    //string name = cookie.Value;  //获得Name=key1&Pass=key2
                    //string name = Request.Cookies["Login"]["Name"];
                    //string pass = Request.Cookies["Login"]["Pass"];
                    txt.Value = "用户名:" + name + "-----密码:" + pass;
                }
            }
    多值Cookie的写法:
    http://www.cnblogs.com/abllyboy/archive/2010/11/29/1891395.html
    http://blog.csdn.net/dingzhenyang/article/details/5704582
  • 相关阅读:
    1722 最优乘车 1997年NOI全国竞赛
    5969 [AK]刻录光盘
    tarjan算法讲解
    求有向图的强连通分量个数 之 Kosaraju算法
    信使
    1405 奶牛的旅行
    P1828 香甜的黄油 Sweet Butter
    洛谷P2235 [HNOI2002]Kathy函数
    「BZOJ1010」[HNOI2008] 玩具装箱toy(斜率优化)
    BZOJ 1974 [Sdoi2010] auction 代码拍卖会(数位dp)
  • 原文地址:https://www.cnblogs.com/Yisijun/p/4588149.html
Copyright © 2020-2023  润新知