You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET Core Razor Page中如何在分部页访问Session?

在Razor分部页访问Session中的用户名解决方案
  • 确认Session服务已正确配置
    在ASP.NET Core项目的Program.cs中,必须先注册Session服务并启用中间件:

    // 注册Session服务
    builder.Services.AddSession(options =>
    {
        options.IdleTimeout = TimeSpan.FromMinutes(30); // 设置会话超时时间
        options.Cookie.HttpOnly = true;
        options.Cookie.IsEssential = true;
    });
    
    // 启用Session中间件(需放在UseRouting之后,UseAuthorization之前)
    app.UseSession();
    
  • 在Razor分部页中直接读取Session值
    分部页可以通过Context.Session直接访问会话数据,示例代码如下:

    @{
        // 读取Session中的用户名,为空时显示默认文本
        string userName = Context.Session.GetString("UserName") ?? "未登录用户";
    }
    
    <div class="user-info">
        欢迎登录:@userName
    </div>
    

    也可以添加判断逻辑,针对未登录状态做处理:

    @{
        string userName = Context.Session.GetString("UserName");
    }
    
    @if (!string.IsNullOrEmpty(userName))
    {
        <p>您好,@userName!</p>
    }
    else
    {
        <p>请先登录系统</p>
    }
    
  • 排查常见问题

    • 确保Session键名完全一致:存储时用的是"UserName",读取时要严格匹配大小写。
    • 验证登录逻辑是否成功写入Session:可以在登录后的主页面先测试读取Context.Session.GetString("UserName"),确认值已正确存入。
    • 若使用视图组件(View Component),访问Session的方式与分部页一致,同样通过Context.Session获取值。

内容的提问来源于stack exchange,提问作者Mizanur Rahaman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 21:55:48