public IActionResult Index()
{
ISession session = HttpContext.Session;
session.SetInt32("age", 30);
session.SetString("username", "张三");
return View();
}
public IActionResult Read()
{
ISession session = HttpContext.Session;
int? age = session.GetInt32("age");
if (age.HasValue)
{
ViewBag.age = age;
}
string username = session.GetString("username");
ViewBag.username = username;
return View();
}
前台index:
<a href="/test/read">跳转到Read</a>
前台read:
<h1>这是Read页面</h1>
<br />
姓名:@ViewBag.username
<br />
年龄:@ViewBag.age
asp.net core2.1以上版本,例如上面这个例子,在跳转页面后取不到Session,如果要获取Session需要在Startup.cs中添加代码:
1、在ConfigureServices中添加如下代码:
services.AddSession(opts=>opts.Cookie.IsEssential = true);
2、在Configure中添加如下代码:
app.UseSession();
这样就可以了。
备注:在添加AddSession时必须注意设置为Cookie.IsEssential = true;因为默认CheckConsentNeeded=true;
GDPR规定了cookie的操作方式,
并且在用户同意使用cookie之前不会使用。