0

我想在ASP.NET Core 1.0/ASP.net Core Mvc项目中做一些简单的事情:获取并设置简单的会话变量。但事实证明非常困难。我试图按照this answer中的建议,即将依赖项 - “Microsoft.AspNet.Session”:“1.0.0-beta3”添加到project.json中,然后使用Context.Session.SetInt(“myVar” ,35),但没有奏效。 SetInt()方法仍然不被识别。ASP.NET Core 1.0中的会话变量

我是否需要包含其他依赖项?我错过了什么?

+0

是有你需要的会话变​​量一个特别的原因?就我个人而言,这是我用来关闭旧模板的第一件事,只有当我用尽所有其他可能的不使用它们的方式时才打开它们,因为会话变量是一种可伸缩性和性能瓶颈。 – BMac 2015-04-06 14:09:52

+0

我有条件地在_ViewStart.cshtml中设置Layout变量,以允许我们的开发人员设置一个“?dev = 1”查询字符串,以在我们不想全局传播的新布局中进行开发。现在,它可以工作,他们可以去“some/page?dev = 1”来查看他们正在新模板中开发的页面。我希望这个选择能够贯穿整个会话,以便他们可以浏览网站并保持新的布局。 – jbyrd 2015-04-06 14:14:12

+1

您是否已将'使用Microsoft.AspNet.Http;'添加到您的控制器文件中? – 2015-04-07 12:20:54

回答

1

试试这个示例如下: https://github.com/aspnet/Session/blob/dev/samples/SessionSample/Startup.cs

您需要先配置会话中间件,然后包括适当的usings。

public class Startup 
{ 
    public void ConfigureServices(IServiceCollection services) 
    { 
     services.AddCaching(); 
     services.AddSession(); 
    } 

    public void Configure(IApplicationBuilder app) 
    { 
     app.UseSession(o => { 
      o.IdleTimeout = TimeSpan.FromSeconds(30); }); 
    } 
} 

相关usings是

using Microsoft.AspNet.Builder; 
using Microsoft.AspNet.Http;