【发布时间】:2017-07-26 23:49:04
【问题描述】:
我正在尝试在我的 ASP.NET Core 1.0 (vNEXT) 项目中使用 Session。这就是我的代码的样子。
public class Startup
{
// For more information on how to configure your application, visit http://go.microsoft.com/fwlink/?LinkID=398940
public void ConfigureServices(IServiceCollection services)
{
//-- Enabled MVC Pattern
services.AddMvc();
//-- Enable Session handling
services.AddCachingServices();
services.AddSessionServices();
}
public void Configure(IApplicationBuilder app)
{
//-- User MVC
app.UseMvc();
//-- Use Session
app.UseSession();
app.UseInMemorySession();
}
}
但现在我被困住了。我不知道如何在我的控制器或页面中设置或从会话中获取数据。我试过this.Context.Session。但它没有实例化,所以当我尝试访问该属性时会抛出一个无效异常。
任何有关于如何使其工作的代码示例的人。
提前致谢。
编辑:
这是一个屏幕转储,base.context.Session 在我的控制器中的样子。
而且我没有 SetString() 和 GetString(),只有 Set() 和 TryGet()... 方法...
这就是我的 project.json 文件的样子。
"version": "1.0.0-*",
"dependencies": {
"Microsoft.AspNet.Server.IIS": "1.0.0-beta3",
"Microsoft.AspNet.Mvc": "6.0.0-beta3",
"Microsoft.AspNet.Session": "1.0.0-beta3"
},
【问题讨论】:
-
添加会话中间件之前任何需要它。否则它将无法在请求管道中的正确位置使用(中间件本质上是按顺序运行的)。
-
哦...谢谢。我在我的 startup.cs 文件中切换位置,并将 UseMVC() 放在最后,现在它可以工作了。谢谢!!!
-
如果您想接受,我将评论更改为答案,以便其他人更容易看到。
-
这里有更详细的教程:benjii.me/2015/07/…
标签: session asp.net-core