我使用app.UseSession中间件将Session添加到我的startup.cs,并且在同一个启动文件中我可以调用context.Session.SetString("key", "value")
,我甚至可以在同一个startup.cs中获取值使用context.Session.GetString("key")
的文件,但现在,如果我不想从控制器执行相同的操作,那么如果我这样做的话:
Request.HttpContext.Session.GetString("Key")
我收到错误,告诉我Session没有GetString方法,我已经将Microsoft.AspNet.Session添加到using语句中。
那么,如何从控制器获取和设置Session的值?
谢谢。
答案 0 :(得分:1)
会话状态扩展方法位于Microsoft.AspNet.Http
命名空间:https://github.com/aspnet/HttpAbstractions/blob/dev/src/Microsoft.AspNet.Http.Extensions/SessionCollectionExtensions.cs#L7
答案 1 :(得分:1)
如果你在控制器中,你应该使用继承的Context属性:
Context.Session.GetString("key");
您可以在此处详细了解它:Using Sessions and HttpContext in ASP.NET 5 and MVC6