📜  在 cshtml 上获取 Session 内容(1)

📅  最后修改于: 2023-12-03 15:37:19.232000             🧑  作者: Mango

在 cshtml 上获取 Session 内容

在 ASP.NET Core 中,我们可以通过使用 Session 来存储用户的状态信息,比如用户名、权限信息等等。而在 cshtml 文件中,我们可以通过以下方法来获取 Session 中的内容。

1. 引入命名空间

首先,我们需要在 cshtml 文件中引入以下命名空间,以获取 Session 相关的方法:

@using Microsoft.AspNetCore.Http
2. 注入 IHttpContextAccessor

在 ASP.NET Core 中,我们需要通过注入 IHttpContextAccessor 实例来访问当前的 HttpContext,从而获取 Session 对象。因此,在 cshtml 文件中,我们需要通过依赖注入的方式来获取 IHttpContextAccessor 实例。具体步骤如下:

2.1 配置 Startup.cs

在 Startup.cs 文件中,我们需要对 IHttpContextAccessor 进行依赖注入。请在 ConfigureServices 方法中添加以下代码:

services.AddHttpContextAccessor();
2.2 在 cshtml 文件中获取 IHttpContextAccessor 实例

接下来,在 cshtml 文件中声明一个变量来保存 IHttpContextAccessor 实例,代码如下:

@inject IHttpContextAccessor HttpContextAccessor
3. 获取 Session 对象

通过以上步骤,我们已经拿到了 IHttpContextAccessor 实例,接下来我们就可以通过它来获取当前的 HttpContext,并从中获取 Session 对象了。请看下面的代码示例:

@{
    HttpContext httpContext = HttpContextAccessor.HttpContext;
    ISession session = httpContext.Session;
}
4. 获取 Session 内容

现在,我们已经拿到了 Session 对象,我们可以通过这个对象来获取 Session 中存储的内容了。以下是一个示例:

@{
    ViewBag.UserName = session.GetString("UserName");
}

上述代码将从 Session 中获取保存的 UserName 字符串,并将其赋值给 ViewBag.UserName。之后,我们就可以在 cshtml 页面中使用这个变量的值了。

以上就是在 cshtml 上获取 Session 内容的方法,希望对大家有所帮助。