2
protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            this.GetLeft.Value = invited.GetInviteCountByWeb().ToString();
            HttpCookie oldCookie = Request.Cookies["Time"];
            if (oldCookie != null)
            {
                if (DateTime.Now.ToString("yyyy-MM-dd") == Convert.ToDateTime(oldCookie.Values["GetTime"]).ToString("yyyy-MM-dd"))
                {
                    this.IsGet.Value = "false";
                }
                else
                {
                    HttpCookie newCookie = new HttpCookie("Time");
                    newCookie.Values.Add("GetTime", DateTime.Now.Date.ToString("yyyy-MM-dd"));
                    newCookie.Expires = DateTime.Now.AddHours(24.0);
                    Response.Cookies.Add(newCookie);
                }
            }
        }
    }

しかし、それは機能していません。ブラウザが毎回閉じられると、oldcookieはnullになります。1日に1回ボタンクリックを設定するにはどうすればよいですか?

4

1 に答える 1

3

elseステートメントが間違った場所にあります。次のようにしてみてください。

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        this.GetLeft.Value = invited.GetInviteCountByWeb().ToString();
        HttpCookie oldCookie = Request.Cookies["Time"];
        if (oldCookie != null)
        {
            if (DateTime.Now.ToString("yyyy-MM-dd") == Convert.ToDateTime(oldCookie.Values["GetTime"]).ToString("yyyy-MM-dd"))
            {
                this.IsGet.Value = "false";
            }
        }
        else
        {
            HttpCookie newCookie = new HttpCookie("Time");
            newCookie.Values.Add("GetTime", DateTime.Now.Date.ToString("yyyy-MM-dd"));
            newCookie.Expires = DateTime.Now.AddHours(24.0);
            Response.Cookies.Add(newCookie);
        }
    }
于 2012-06-21T06:06:38.257 に答える