我正在尝试在顶部面板上制作“登录信息”,例如“Welcome Back XXX”,所以我使用
<% Response.Write(Session["username"]); %>
在aspx页面内。
它可以工作,但是没有Response.Write
这里直接使用变量吗?似乎没有必要。
我正在尝试在顶部面板上制作“登录信息”,例如“Welcome Back XXX”,所以我使用
<% Response.Write(Session["username"]); %>
在aspx页面内。
它可以工作,但是没有Response.Write
这里直接使用变量吗?似乎没有必要。
在 ASP.NET 页面语法中有一个简单的“快捷方式”可以将Response.Write
.
<%= Session["username"] %>
在功能上等同于
<% Response.Write(Session["username"]); %>
通常,您希望使用 将会话变量编码为 HTML Html.Encode
,以防它们包含不在接受的 HTML 范围内的字符。如果您使用的是 ASP.NET 4,则可以使用<%: %>
,相当于Response.Write(Html.Encode(string))
.
在您的页面上放置一个 asp.net 标签,例如
<asp:Label id=lblUserName runat="server" />
在您的代码隐藏页面、page_load 事件或适当事件上
lblUserName.Text = String.Format("welcome back {0}",Session["username"]);
使用标签并为其分配用户名
在 aspx 中(html 代码)
<asp:Label id=lblUserName runat="server" />
在 aspx.cs 中(后面的代码)
lblUserName .Text = "Welcome back"+Session["username"].ToString();
你可以这样做:
<%= Session["username"] %>
如果您使用 ASP.NET 4.0,您可以使用以下语法自动对值进行 HTML 编码:
<%: Session["username"] %>
正确的方法。
现在,如果您喜欢使用 Literal 或 Label,或者只是直接编写它,这取决于您。如果要将其放在 UpdatePanel 中,则必须使用 Literal。
现在,如果您使用 Literal 避免设置 ViewState 以从中获得空间,那么您需要在 PageLoad 上设置它。它将是
<asp:Literal runat="server" id="txtUserName" EnableViewState="false" />
和页面加载。
if(Session["username"] != null)
{
Debug.Assert(Session["username"].ToString.Length > 0 , "Check out why I have zero user name");
txtUserName.Text = Server.HTMLEncode(Session["username"].ToString);
}