+ -
当前位置:首页 → 问答吧 → asp发布后不能读取cookie【在线等。。。】

asp发布后不能读取cookie【在线等。。。】

时间:2011-12-21

来源:互联网

做的购物车用的Cookie,在购买的时候可以创建cookie,但是去购物车结算的时候能读取Cookie中的数据。
在调试的时候没问题,但是一发布就出现这个问题,请指教啊~~~~

 C# code

#region 私有字段
    HttpCookie cookie;
    DataTable dt = new DataTable("Merchandises");
    #endregion

    #region 构造函数
    public Car()
    {
        cookie = System.Web.HttpContext.Current.Request.Cookies["MerchandiseInfo"];
    }
    #endregion

    #region 获取购物车表信息
    public DataTable GetShopCartInfo()
    {
        string[] sPic;
        string[] sMerchandiseID;
        string[] sMerchandiseName;
        string[] sPrice;
        string[] sNum;
        string[] sXJ;
        string[] sSpec;
        string[] sUnitID;
        string[] sUnitName;
        int j = 0;

        DataColumn c1 = dt.Columns.Add("PicPath");
        DataColumn c2 = dt.Columns.Add("MerchandiseID");
        DataColumn c3 = dt.Columns.Add("MerchandiseName");
        DataColumn c4 = dt.Columns.Add("Price");
        DataColumn c5 = dt.Columns.Add("Num");
        DataColumn c6 = dt.Columns.Add("XJ");
        DataColumn c7 = dt.Columns.Add("Spec");
        DataColumn c8 = dt.Columns.Add("UnitID");
        DataColumn c9 = dt.Columns.Add("UnitName");
        Regex r = new Regex(",");
        try
        {
            sPic = r.Split(cookie.Values["PicPath"]);
            sMerchandiseID = r.Split(cookie.Values["MerchandiseID"]);
            sMerchandiseName = r.Split(cookie.Values["MerchandiseName"]);
            sPrice = r.Split(cookie.Values["Price"]);
            sNum = r.Split(cookie.Values["Num"]);
            sXJ = r.Split(cookie.Values["XJ"]);
            sSpec = r.Split(cookie.Values["Spec"]);
            sUnitID = r.Split(cookie.Values["UnitID"]);
            sUnitName = r.Split(cookie.Values["UnitName"]);
            foreach (string sMID in sMerchandiseID)
            {
                DataRow dr = dt.NewRow();
                dr["PicPath"] = sPic[j];
                dr["MerchandiseID"] = sMerchandiseID[j];
                dr["MerchandiseName"] = sMerchandiseName[j];
                dr["Price"] = sPrice[j];
                dr["Num"] = sNum[j];
                dr["XJ"] = sXJ[j];
                dr["Spec"] = sSpec[j];
                dr["UnitID"] = sUnitID[j];
                dr["UnitName"] = sUnitName[j];
                dt.Rows.Add(dr);
                j++;
            }
            return dt;
        }
        catch (Exception ex)
        {
            return null;
        }
    }
    #endregion

    #region 将购物数据写入Cookie
    /// <summary>
    /// 将购物数据写入Cookie
    /// </summary>
    /// <param name="merchandiseID">商品编码</param>
    /// <param name="merchandiseName">商品名称</param>
    /// <param name="price">单价</param>
    /// <param name="num">数量</param>
    /// <param name="xj">小计</param>
    public void WriteCookie(string picPath, string merchandiseID, string merchandiseName, string price, string num, string xj, string spec, string unitID,string unitName)
    {

        if (cookie == null)
        {
            cookie = new HttpCookie("MerchandiseInfo");
            cookie.Values["PicPath"] = picPath;
            cookie.Values["MerchandiseID"] = merchandiseID;
            cookie.Values["MerchandiseName"] = merchandiseName;
            cookie.Values["Price"] = price;
            cookie.Values["Num"] = num;
            cookie.Values["XJ"] = xj;
            cookie.Values["Spec"] = spec;
            cookie.Values["UnitID"] = unitID;
            cookie.Values["UnitName"] = unitName;
            cookie.Expires = DateTime.Now.AddMonths(6);
            HttpContext.Current.Response.Cookies.Add(cookie);
        }
        else
        {
            cookie.Values["PicPath"] = cookie.Values["PicPath"] + "," + picPath;
            cookie.Values["MerchandiseID"] = cookie.Values["MerchandiseID"] + "," + merchandiseID;
            cookie.Values["MerchandiseName"] = cookie.Values["MerchandiseName"] + "," + merchandiseName;
            cookie.Values["Price"] = cookie.Values["Price"] + "," + price;
            cookie.Values["Num"] = cookie.Values["Num"] + "," + num;
            cookie.Values["XJ"] = cookie.Values["XJ"] + "," + xj;
            cookie.Values["Spec"] = cookie.Values["Spec"] + "," + spec;
            cookie.Values["UnitID"] = cookie.Values["UnitID"] + "," + unitID;
            cookie.Values["UnitName"] = cookie.Values["UnitName"] + "," + unitName;
            cookie.Expires = DateTime.Now.AddMonths(6);
            HttpContext.Current.Response.Cookies.Add(cookie);
        }
    }
    #endregion

作者: lifang18a   发布时间: 2011-12-21

不要沉了呀~~help~~!

作者: lifang18a   发布时间: 2011-12-21

怎么没有人回答呢。。。唉~~~~

作者: lifang18a   发布时间: 2011-12-22

cookies是先写到客户端后才能读

作者: ximenwuji   发布时间: 2011-12-22

相关阅读 更多