无法显示Session到ASPX页面的内容

时间:2014-10-11 15:37:26

标签: c# asp.net string session

所以我有一段代码,当用户登录时,会使用他们的用户名并将其放入名为username的Session中。 (为了简单起见,我只是在那里放了一个测试字符串,但通常是userEmail.Username)

 else
            {
                Session["Username"] = "test";
                Response.Redirect("Default.aspx");

            }

据我所知,这块代码可以工作,因为一旦用户登录,它们就会被重定向到default.aspx。我还有另一段代码(在Page_Load后面的Master页面代码中),如果会话为非null,则会使一个面板可见,这也有效,这意味着会话中存储了一些内容:

  if (Session["Username"] != null)
        {
            pnlLoggedIn.Visible = Visible;

        }

然而,当我尝试在文本前面显示它时:

 <h3>Welcome back <h3>

所以它会说“欢迎回来[用户名]”我不能。我可能只是不知道代码。我已经尝试创建一个名为getUsername的公共字符串并调用它,我尝试将Session [“Username”]放在前面,但它只打印出来,我在这里寻找的是什么代码?

3 个答案:

答案 0 :(得分:2)

尝试使用:

<h3>Welcome back <%= Server.HtmlEncode((string)Session["Username"]) %><h3>

答案 1 :(得分:0)

在标记中,您需要在将页面呈现给客户端之前处理服务器端代码块。像这样:

<h3>Welcome back <%= Server.HtmlEncode(Session["Username"]) %></h3>

您还可以将其封装在页面级属性中,以便稍微从会话中解析UI代码,如下所示:

<h3>Welcome back <%= Server.HtmlEncode(Username) %></h3>

这将在页面上查找名为Username的属性,您可以将其添加到代码隐藏中:

protected string Username
{
    get { return Session["Username"]; }
}

答案 2 :(得分:0)

试试这个:

始终检查Not NULL <{1}}

欢迎回来

Session,ViweStates,etc
相关问题