簡體   English   中英

ASP.NET Core中的會話狀態

[英]Session state in ASP.NET Core

在常規MVC中,我習慣於能夠執行以下操作:

public ActionResult SomeAction(){
    Session["User"] = new User();

    return View();
}

在視圖中給我這個選項:

<div>
    @if(Session["User"] != null){
        <p>Welcome @Session["User"].Username</p>
    }
</div>

在ASP.NET Core中,由於各種操作系統能夠運行此應用程序,因此未實現會話狀態。 我已經看到我可以使用IMemoryCacheIDistributedCache ,但鑒於這種情況,我不太確定如何。

這樣做的任何簡單且解釋良好的方法?

ASP.NET Core中的會話狀態是可能的。 我按照以下步驟修復了它:

將以下包添加到project.json
Microsoft.AspNetCore.Session

配置會話服務

public class Startup
{
    public void ConfigureServices(IServiceCollection services)
    {
        services.AddMvc();

        services.AddDistributedMemoryCache();
        services.AddSession(options => 
            // Add any options you want here
            // EXAMPLE
            options.IdleTimeout = TimeSpan.FromSeconds(60);
        );
    }

    public void Configure(IApplicationBuilder app)
    {
        app.UseSession();
        app.UseMvcWithDefaultRoute();
    }
}

全部做完
現在,您應該可以在控制器中執行以下操作

public class SomeController : Controller
{
    public IActionResult SomeAction()
    {
        TempData["SomeProperty"] = "Some data";
    }
}

在你看來:

<div>
    <p>@TempData["SomeProperty"]</p>
</div>

docs.microsoft.com文檔中進一步閱讀材料

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM