Asp.net

在asp.net mvc c#中使用cookie

  • February 6, 2012

我想使用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"],我顯示的 cookie 是空的。

在我們尚未清除 cookie 的情況下,如何將其儲存在 cookie 中而不會失去?

我不確定我是否理解這是關於如何正確地將 cookie 發送到客戶端的問題,還是您的查詢字元串參數存在一些錯誤。因此,我將發布發送 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 );

引用自:https://stackoverflow.com/questions/9158225