在 .NET Core cshtml 文件中调用 @HttpContext.Session["XX"]

Calling @HttpContext.Session["XX"] in .NET Core cshtml file

我正在尝试将 .NET MVC 项目转换为 .NET Core。但是为此我收到如下错误。

之前它被指定为 <h6 class="chart-heading-cls">@HttpContext.Current.Session["XX"] Score Over Time</h6>。我从中删除了 Current 关键字,因为它在 HttpContext.

中不存在

你能帮忙解决这个问题吗?

使用以下语法在 Razor 页面中获取会话值

@using Microsoft.AspNetCore.Http;
@inject IHttpContextAccessor HttpContextAccessor
@{    
    string sessionvalue = HttpContextAccessor.HttpContext.Session.GetString("Sessionkey");    
}

在 aspnet core 中,您必须使用 GetString 方法获取会话。

How sessions work in asp dotnet.core

所以正确的用法应该是:

@HttpContext.Session.GetString("XX") 

但是你可以使用更好的方法,检查会话是否为空:

@(HttpContext.Session.GetString("XX")?? "" )