C#/ .NET/ASPX:添加Cookie

Jaq*_*arh 3 .net c# asp.net cookies

在我的Page_Load函数中,我有这个:

 var output = new StringBuilder();
        output.Append("<div class='search-recent'> <ul>");
        var str = Response.Cookies["UserSettings"].Value;
        {
            try
            {
                string[] tokens = str.Split(':');
                foreach (String searchHist in tokens)
                {
                    output.Append("<li>" + searchHist + "</li>");
                }
            }
            catch (Exception ex)
            {
                output.Append("<li>" + str + "</li>");
            }
            finally
            {
                output.Append("</div>");
                recentSearch.Text = output.ToString();
            }
        }
Run Code Online (Sandbox Code Playgroud)

在我的按钮功能中我有这个:

if (Response.Cookies["UserSettings"].Value != null)
        {
            var oldCookieVal = Response.Cookies["UserSettings"].Value;
            HttpCookie cookie = new HttpCookie("UserSettings");
            cookie.Value = oldCookieVal + ":" + sinput;
            cookie.Expires = DateTime.Now.AddHours(3);
            Response.SetCookie(cookie);
        }
        else
        {
            HttpCookie cookie = new HttpCookie("UserSettings");
            cookie.Value = sinput;
            cookie.Expires = DateTime.Now.AddHours(3);
            Response.SetCookie(cookie);
        }
Run Code Online (Sandbox Code Playgroud)

出于某种原因,即使之前存在Cookie,Cookie也始终被覆盖.反正有没有阻止它覆盖?谢谢.

参考研究:http://asp.net-tutorials.com/state/cookies/

编辑:似乎.Value没有返回任何内容,我可以使用什么来解决这个问题?

Big Edit:我替换了.Valueto ToString();,现在它不会覆盖.但是,cookie值是System.Web.HttpCookie当它被发送到前端时...任何建议?

前端视图:https://gyazo.com/9c08160c6bca6cf5b335c0fc3861d0cb(这是所有测试数据)

Joh*_*ehl 6

当您想要获取客户端中cookie的值时,您需要访问Request.Cookies.要设置该值,请使用Response.Cookies.