Skip to main content
 首页 » 编程设计

asp.net之在ASP.NET MVC C#中使用Cookie

2024年09月07日25mfrbuaa

我想使用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 );