我是試圖使頂部面板上的‘登錄信息’,比如‘歡迎回來XXX’,所以我用有沒有方法可以在沒有「Response.Write」的情況下在頁面中插入文本?
<% Response.Write(Session["username"]); %>
aspx頁面內。
它的工作原理,但無論如何,直接使用變量沒有Response.Write
在這裏?這似乎沒有必要。
我是試圖使頂部面板上的‘登錄信息’,比如‘歡迎回來XXX’,所以我用有沒有方法可以在沒有「Response.Write」的情況下在頁面中插入文本?
<% Response.Write(Session["username"]); %>
aspx頁面內。
它的工作原理,但無論如何,直接使用變量沒有Response.Write
在這裏?這似乎沒有必要。
你可以這樣說:
<%= Session["username"] %>
如果你使用ASP.NET 4.0可以自動HTML通過使用此語法編碼值:
<%: Session["username"] %>
把asp.net標籤頁面上,像
<asp:Label id=lblUserName runat="server" />
和你的代碼隱藏頁面上,在Page_Load事件或在適當的情況下
lblUserName.Text = String.Format("welcome back {0}",Session["username"]);
正確的方法。
現在,如果您喜歡使用文字或標籤,或者直接寫下它,取決於您。如果你打算把它放在UpdatePanel裏面,你必須使用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);
}
在ASP.NET頁面語法中有一個簡單的「快捷方式」Response.Write
。
<%= Session["username"] %>
在功能上等同於
<% Response.Write(Session["username"]); %>
通常要編碼會話變量使用Html.Encode
HTML,以防它們包含不在接受範圍HTML字符。如果您使用的是ASP.NET 4,則可以使用<%: %>
,這相當於Response.Write(Html.Encode(string))
。
您使用的是ASP.NET WebForms還是ASP.NET MVC? – 2012-04-15 07:40:30