Asp.net core mvc 使用来自控制器的会话

Asp.net core mvc 使用来自控制器的会话,asp.net-core-mvc,Asp.net Core Mvc,我已经使用app.UseSession中间件将Session添加到startup.cs中,在同一个启动文件中,我可以调用context.Session.SetString(“key”,“value”),甚至可以在同一个startup.cs文件中使用context.Session.GetString(“key”),但现在,如果我不想从控制器中执行同样的操作,它将无法工作,如果我这样做: Request.HttpContext.Session.GetString("Key") 我收到一个错误,告诉

我已经使用app.UseSession中间件将Session添加到startup.cs中,在同一个启动文件中,我可以调用
context.Session.SetString(“key”,“value”)
,甚至可以在同一个startup.cs文件中使用
context.Session.GetString(“key”)
,但现在,如果我不想从控制器中执行同样的操作,它将无法工作,如果我这样做:

Request.HttpContext.Session.GetString("Key")
我收到一个错误,告诉我会话没有GetString方法,我已经将Microsoft.AspNet.Session添加到using语句中

那么,如何从控制器获取并设置会话的值


谢谢。

会话状态扩展方法位于
Microsoft.AspNet.Http
命名空间中:

如果您在控制器中,您应该实际使用继承的上下文属性:

Context.Session.GetString("key");
您可以在此处阅读更多详细信息: