トップパネルに「WelcomeBackXXX」のような「ログイン情報」を作成しようとしているので、
<% Response.Write(Session["username"]); %>
aspxページ内。
それは機能しますが、とにかくResponse.Write
ここなしで変数を直接使用することはできますか?不要のようです。
トップパネルに「WelcomeBackXXX」のような「ログイン情報」を作成しようとしているので、
<% Response.Write(Session["username"]); %>
aspxページ内。
それは機能しますが、とにかくResponse.Write
ここなしで変数を直接使用することはできますか?不要のようです。
ASP.NET ページ構文には、 への簡単な「ショートカット」がありますResponse.Write
。
<%= Session["username"] %>
機能的に同等です
<% Response.Write(Session["username"]); %>
Html.Encode
通常、セッション変数に HTMLの許容範囲外の文字が含まれている場合は、を使用して 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"] %>
正しい方法。
ここで、リテラルまたはラベルを使用するか、直接書き込むかはあなた次第です。UpdatePanel 内に配置する場合は、リテラルを使用する必要があります。
ここで、リテラル回避を使用して 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);
}