我正在尝试在顶部面板上创建“登录信息”,例如“欢迎回来XXX”,所以我使用
<% Response.Write(Session["username"]); %>
在aspx页面内。
它有效,但无论如何在没有Response.Write
的情况下直接使用变量?这似乎没必要。
答案 0 :(得分:3)
ASP.NET页面语法中有一个简单的“快捷方式”Response.Write
。
<%= Session["username"] %>
在功能上等同于
<% Response.Write(Session["username"]); %>
通常,您希望使用Html.Encode
将会话变量编码为HTML,以防它们包含不在可接受的HTML范围内的字符。如果您使用的是ASP.NET 4,则可以使用<%: %>
,这相当于Response.Write(Html.Encode(string))
。
答案 1 :(得分:1)
在您的网页上添加一个asp.net标签,例如
<asp:Label id=lblUserName runat="server" />
并在您的代码隐藏页面上,在page_load事件上或在适当的事件上
lblUserName.Text = String.Format("welcome back {0}",Session["username"]);
答案 2 :(得分:1)
使用标签并为其指定用户名
在aspx(html代码)
中<asp:Label id=lblUserName runat="server" />
在aspx.cs中(代码隐藏)
lblUserName .Text = "Welcome back"+Session["username"].ToString();
答案 3 :(得分:1)
你可以这样做:
<%= Session["username"] %>
如果使用ASP.NET 4.0,则可以使用以下语法自动对值进行HTML编码:
<%: Session["username"] %>
答案 4 :(得分:1)
正确的方法。
现在,如果你想使用文字或标签,或者只是直接写它,那取决于你。如果要将其放在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);
}