C#/.NET/ASPX:添加Cookies
在我的页面加载函数中,我有:C#/.NET/ASPX:添加Cookies,c#,asp.net,.net,cookies,C#,Asp.net,.net,Cookies,在我的页面加载函数中,我有: var output = new StringBuilder(); output.Append("<div class='search-recent'> <ul>"); var str = Response.Cookies["UserSettings"].Value; { try { string[] tokens
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();
}
}
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);
}
出于某种原因,Cookie总是被覆盖,即使之前存在Cookie。是否有任何方法阻止它覆盖?多谢各位
参考研究:
编辑:似乎.Value
没有返回任何内容,我可以使用什么来修复此问题
大编辑:我将.Value
替换为ToString()代码>并且它现在不会覆盖。但是,当发送到前端时,cookie值为System.Web.HttpCookie
。。。有什么建议吗
前端视图:(都是测试数据)当您想获取客户机中cookie的值时,您需要访问Request.Cookies
。要设置值,请使用Response.Cookies确定,因此经过多次尝试和错误后,我发现.value
仅在设置或获取值时使用。
如果要检查值是否存在,请删除.value
。
当您想要设置或获取值时,可以使用.value
示例-
设置cookie(检查期间未设置或获取)
示例-
获取值并使用它
var输出=新的StringBuilder();
字符串userSettings=Request.Cookies[“userSettings”].Value;
输出。追加(“”);
{
尝试
{
string[]tokens=userSettings.Split(“:”);
foreach(令牌中的字符串searchHist)
{
输出。追加(“- ”+searchHist+“
”);
}
}
捕获(例外情况除外)
{
output.Append(“- ”+userSettings+“
”);
}
最后
{
输出。追加(“”);
recentSearch.Text=output.ToString();
}
记住使用文字(控件)当您正在将数据从后端传输到前端时可以这么说,但我该怎么做呢?我尝试过使用响应.Cookies
,我尝试过使用.Value
等。这两种方法都不起作用,只返回System.Web.HttpCookie
或null
。我现在需要做的就是重新调用我相信Cookie的价值UserSettings
@KyleE4K看起来像你在下面。祝你的项目好运。谢谢:)学徒期哈哈,我是一名网站开发人员,只是喜欢软件方面的外观,但还是设法使用了数据库,现在在第三天就这样做了,哈哈,干杯
string oldCookieVal = Request.Cookies["UserSettings"].Value;
string sinput = searchInput.Text;
if (Response.Cookies["UserSettings"] != null)
{
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);
}
var output = new StringBuilder();
string userSettings = Request.Cookies["UserSettings"].Value;
output.Append("<div class='search-recent'> <ul>");
{
try
{
string[] tokens = userSettings.Split(':');
foreach (String searchHist in tokens)
{
output.Append("<li>" + searchHist + "</li>");
}
}
catch (Exception ex)
{
output.Append("<li>" + userSettings + "</li>");
}
finally
{
output.Append("</div>");
recentSearch.Text = output.ToString();
}