我正在将一个ASP.NET MVC应用程序迁移到ASP.NET Core。
在ASP.NET MVC中,我使用一些Session变量来存储或获取以下值:
Session["UserID"] = user.UserName;
Session["Role"] = role[0].ROLE_DESCRIPTION;
ViewData["LEVEL"] = Session["LEVEL"];但是在转换之后,我得到了一个错误:
名称“会话”在当前上下文中不存在
此外,我还需要在.cshtml文件中替换它:
var UserName = "@Session["Name"]";在ASP.NET Core中有没有其他方法可以在不改变行为的情况下存储或获取这些变量的值?
发布于 2022-02-11 06:22:29
您需要在配置文件中添加会话中间件。
public void ConfigureServices(IServiceCollection services)
{
//........
services.AddDistributedMemoryCache();
services.AddSession(options => {
options.IdleTimeout = TimeSpan.FromMinutes(1);//You can set Time
});
services.AddMvc();
}
public void ConfigureServices(IServiceCollection services)
{
//......
app.UseSession();
//......
}然后在你的控制器里,你可以
//set session
HttpContext.Session.SetString(SessionName, "Jarvik");
HttpContext.Session.SetInt32(SessionAge, 24);
//get session
ViewBag.Name = HttpContext.Session.GetString(SessionName);
ViewBag.Age = HttpContext.Session.GetInt32(SessionAge); https://stackoverflow.com/questions/71070698
复制相似问题