首页 > 解决方案 > 在 ASP.NET Core 2.1 中使用 cookie

问题描述

我有一个简单的 ASP.NET Core 2.1 应用程序,它应该设置然后读取 cookie。

每当我尝试读取 cookie 时,它​​都会返回 null。进一步查看浏览器的检查工具,我找不到它。

我想出了这个小实现,看看我是否可以弄清楚发生了什么,但它不起作用..

 public async Task<IActionResult> Contact(Contato contato)
 {
    await email.SendAsync(contato);

    var option = new CookieOptions();
    option.Expires = DateTime.Now.AddMinutes(10);
    Response.Cookies.Append("EmailEnviado", "true", option);
    var boh = Request.Cookies["EmailEnviado"];

    return RedirectToAction("Contact");
 }

变量boh,当通过调试器检查时为空,即使它是在前一行中写入的。

标签: c#htmlasp.net-mvcasp.net-core

解决方案


第一次设置后,您将无法立即读取 cookie。一旦响应创建了 cookie,您就可以读取它。考虑一下:

public async Task<IActionResult> OnPostCreateAsync()
{

    var option = new CookieOptions();
    option.Expires = DateTime.Now.AddMinutes(10);
    Response.Cookies.Append("Emailoption", "true", option);
    return RedirectToPage();
}

然后你可以在 Get 方法中读取 cookie:

public void OnGet()
{
    var boh = Request.Cookies["Emailoption"];
}

推荐阅读