所以我有一段代码,当用户登录时,会使用他们的用户名并将其放入名为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”]放在前面,但它只打印出来,我在这里寻找的是什么代码?
答案 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