在asp.net中使用cookie mvc c#

我想使用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到客户端或一些bug与您的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 );

相关文章

这篇文章主要讲解了“WPF如何实现带筛选功能的DataGrid”,文...
本篇内容介绍了“基于WPF如何实现3D画廊动画效果”的有关知识...
Some samples are below for ASP.Net web form controls:(fr...
问题描述: 对于未定义为 System.String 的列,唯一有效的值...
最近用到了CalendarExtender,结果不知道为什么发生了错位,...
ASP.NET 2.0 page lifecyle ASP.NET 2.0 event sequence cha...