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;