在常规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
代替,但鉴于这种情况,我不太确定如何。
这样做的任何简单且解释良好的方法?
答案 0 :(得分:0)
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>
的资料