0

トップパネルに「WelcomeBackXXX」のような「ログイン情報」を作成しようとしているので、

<% Response.Write(Session["username"]); %>

aspxページ内。

それは機能しますが、とにかくResponse.Writeここなしで変数を直接使用することはできますか?不要のようです。

4

5 に答える 5

3

ASP.NET ページ構文には、 への簡単な「ショートカット」がありますResponse.Write

<%= Session["username"] %>

機能的に同等です

<% Response.Write(Session["username"]); %>

Html.Encode通常、セッション変数に HTMLの許容範囲外の文字が含まれている場合は、を使用して HTML としてエンコードします。ASP.NET 4 を使用している場合は<%: %>、 と同等の を使用できますResponse.Write(Html.Encode(string))

于 2012-04-15T07:48:01.520 に答える
1

次のように、ページにasp.netラベルを付けます

<asp:Label id=lblUserName runat="server" />

コードビハインド ページ、page_load イベント、または適切なイベントで

lblUserName.Text = String.Format("welcome back {0}",Session["username"]);
于 2012-04-15T07:34:41.647 に答える
1

ラベルを使用してユーザー名を割り当てます

aspx (html コード)

<asp:Label id=lblUserName runat="server" />

aspx.cs 内 (コード ビハインド)

lblUserName .Text = "Welcome back"+Session["username"].ToString(); 
于 2012-04-15T07:35:18.663 に答える
1

次のように実行できます。

<%= Session["username"] %>

また、ASP.NET 4.0 を使用している場合は、次の構文を使用して値を自動的に HTML エンコードできます。

<%: Session["username"] %>
于 2012-04-15T07:43:08.913 に答える
1

正しい方法。

  1. まず、値がnullかどうかを確認します
  2. 2 つ目は、ページに記述するため、HTMLEncode を使用して、あらゆるタイプのインジェクションや問題を確実に回避することです。

ここで、リテラルまたはラベルを使用するか、直接書き込むかはあなた次第です。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);
}
于 2012-04-15T07:44:45.510 に答える