我想使用cookie在我的网站中注册几个页面的参数。我尝试了以下代码,但不喜欢我想要的:
public ActionResult Index(int? dep, int? cat)
{
......
string theDept = Request.QueryString["dep"];
HttpCookie cookie = new HttpCookie("search");
cookie.Values["dep_name"] = theDept;
cookie.Expires = DateTime.Now.AddDays(1);
Response.Cookies.Add(cookie);
return View();
}
我在site.master中阅读了它:
<%
HttpCookie cookie = Request.Cookies["search"] ;
if ((cookie != null) && (cookie.Value != ""))
{
Response.Write(cookie.Values["dep_name"].ToString() + "---" +
cookie.Values["cat_name"].ToString() + "---" + cookie.Values["brand"].ToString());
}
%>
问题:当我单击
Request.QueryString["dep"]
为null的另一个页面时,我显示的cookie也为null。
如何在我们尚未清除Cookie的情况下将其存储在cookie中而又不会丢失?
请您参考如下方法:
我不确定我是否理解这是否是有关如何将Cookie正确发送到客户端或您的querystring参数存在某些错误的问题。因此,我会发布发送Cookie的正确方法,如果我误解了,请随时纠正我。
无论如何,我相信:
HttpCookie cookie = new HttpCookie("search");
将重置搜索Cookie
要获取Cookie:
HttpCookie cookie = HttpContext.Request.Cookies.Get("some_cookie_name");
要检查Cookie的存在,请执行以下操作:
HttpContext.Request.Cookies["some_cookie_name"] != null
要保存Cookie:
HttpCookie cookie = new HttpCookie("some_cookie_name");
HttpContext.Response.Cookies.Remove("some_cookie_name");
HttpContext.Response.SetCookie(cookie );