我想在 View 中显示 session 。那可能吗? 在我看来,我尝试这样做
<div class="content-header col-xs-12">
<h1>Welcome, @HttpContext.Session.GetString("userLoggedName")</h1>
</div>
但是我得到一个错误
Severity Code Description Project File Line Suppression State Error CS0120 An object reference is required for the non-static field, method, or property 'HttpContext.Session'
任何帮助,我将不胜感激。谢谢
最佳答案
您可以将IHttpContextAccessor
实现注入(inject)到您的 View 中并使用它来获取 session 对象
@using Microsoft.AspNetCore.Http
@inject IHttpContextAccessor HttpContextAccessor
<h1>@HttpContextAccessor.HttpContext.Session.GetString("userLoggedName")</h1>
假设您已经在 Startup 类中设置了启用 session 的所有设置。
public void ConfigureServices(IServiceCollection services)
{
services.AddSession(s => s.IdleTimeout = TimeSpan.FromMinutes(30));
services.AddMvc();
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
app.UseSession(); // This line is needed
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
}
关于c# - 在 Asp Core 2 View 中访问 Session 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46877349/