[英]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中,由於各種操作系統能夠運行此應用程序,因此未實現會話狀態。 我已經看到我可以使用IMemoryCache
和IDistributedCache
,但鑒於這種情況,我不太確定如何。
這樣做的任何簡單且解釋良好的方法?
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.