如何在 C# 和 ASP.NET MVC 中读取/写入 cookie
Posted
技术标签:
【中文标题】如何在 C# 和 ASP.NET MVC 中读取/写入 cookie【英文标题】:How can read / write cookie in C# & ASP.NET MVC 【发布时间】:2019-01-05 18:00:44 【问题描述】:我的cookie有问题,这是我在课堂上的读写代码:
public static class language
public static void set_default(string name)
HttpContext.Current.Response.Cookies.Remove("language");
HttpCookie language = new HttpCookie("language");
language["name"] = name;
language.Expires = DateTime.Now.AddDays(1d);
HttpContext.Current.Response.Cookies.Add(language);
public static string get_default()
string name = string.Empty;
HttpCookie langauge = HttpContext.Current.Response.Cookies.Get("language");
name = langauge["name"];
return name;
当我转到下一页并使用@language.get_default()
获取默认语言时,响应为null
- 为什么?
【问题讨论】:
【参考方案1】:在编写 cookie 时,您将 cookie 添加到 Response
。阅读它们时,您应该使用Request
:
HttpCookie language = HttpContext.Current.Request.Cookies.Get("language");
所以set_default()
是正确的,但你应该更改为get_default()
【讨论】:
【参考方案2】:我不确定language.Expires = DateTime.Now.AddDays(1d);
是否正确。 DateTime.Now.AddDays 接受整数,而 1d 不接受。
创建饼干:
HttpContext.Response.Cookies.Append("language", "ENGLISH", new CookieOptions()
Expires = DateTime.Now.AddDays(5)
);
获取饼干:
string language = HttpContext.Request.Cookies["language"];
删除饼干:
HttpContext.Response.Cookies.Append("language", "", new CookieOptions()
Expires = DateTime.Now.AddDays(-1)
);
或
HttpContext.Response.Cookies.Delete("language");
【讨论】:
以上是关于如何在 C# 和 ASP.NET MVC 中读取/写入 cookie的主要内容,如果未能解决你的问题,请参考以下文章
菜鸟入门ASP.NET Core5:命令行配置Json文件配置Bind读取配置到C#实例在Core Mvc中使用Options
如何使用 C# 在 ASP.NET Core 3.1 MVC 中使用会话变量
如何在 C# 页面 ASP.NET Core MVC 上使用 SignInManager 和 Usermanager
如何在 ASP.NET Core MVC 中读取操作方法的属性?