HOW TO:將 Literal Web 伺服器控制項加入至 Web Form 網頁 (Visual Studio)

更新:2007 年 11 月

當您想用程式設計的方式而不要加入額外的 HTML 標記來設定文字時,可將 Literal Web 伺服器控制項加入至 Web Form 網頁。Literal 控制項可以有效地將文字動態地加入至網頁,而不必加入不屬於動態文字的任何項目。例如,您可以使用 Literal 控制項來顯示從檔案或資料流讀取的 HTML。

注意事項:

如果要顯示靜態文字,可以使用 HTML 來呈現;不需要 Literal 控制項。只有在您需要動態變更伺服端程式碼中的內容時才使用 Literal 控制項。

將 Literal Web 伺服器控制項加入至 Web Form 網頁

  1. 從 [工具箱] 的 [標準] 索引標籤,將 Literal 控制項拖曳到頁面。

  2. 選項性的,在 [屬性] 視窗的 [行為] 類別中,將 Mode 屬性設定為 TransformPassThroughEncodeMode 屬性可以指定控制項如何處理加入其中的任何標記。如需詳細資訊,請參閱 Literal Web 伺服器控制項概觀

    以下範例說明在執行期間顯示標題的簡單網頁。網頁的主體,包括 Literal 控制項,看起來可能如下。

    <body>
      <form >
        <h1><asp:Literal id="Headline" runat=server 
          mode="PassThrough"/></h1>
      </form>
    </body>
    
  3. 在執行階段,將程式碼加入至您的網頁以設定控制項的 Text 屬性。

    以下範例說明如何利用程式設計方式來設定 Literal 控制項的文字和編碼。這個網頁包含選項按鈕,可以讓使用者選擇編碼文字或傳遞文字。

    注意事項:

    若是將 Text 屬性設定為從不信任來源所取得的文字,請將控制項的 Mode 屬性設定為 Encode,此標記才不會變成可執行的標記。

    <%@ Page Language="VB" %>
    <script >
    Protected Sub Page_Load(ByVal sender As Object, _
        ByVal e As System.EventArgs)
        Literal1.Text = "This <b>text</b> is inserted dynamically."
        If radioEncode.Checked = True Then
            Literal1.Mode = LiteralMode.Encode
        ElseIf radioPassthrough.Checked = True Then
            Literal1.Mode = LiteralMode.PassThrough
        End If
    End Sub
    </script>
    
    <html>
    <head ></head>
    <body>
    <form id="form1" >
    <div>
        <br />
        <asp:RadioButton 
            ID="radioEncode" 
    
            GroupName="LiteralMode" 
            Checked="True" 
            Text="Encode" 
            AutoPostBack="True" />
        <br />
        <asp:RadioButton 
            ID="radioPassthrough" 
    
            GroupName="LiteralMode" 
            Text="PassThrough" 
            AutoPostBack="True" />
        <br />
        <br />
        <asp:Literal ID="Literal1" ></asp:Literal>
    </div>
    </form>
    </body>
    </html>
    
    <%@ Page Language="C#" %>
    <script >
        protected void Page_Load(object sender, EventArgs e)
        {
            Literal1.Text = "This <b>text</b> is inserted dynamically.";
            if (radioEncode.Checked == true)
            {
                Literal1.Mode = LiteralMode.Encode;
            }
            if(radioPassthrough.Checked == true)
            {
                Literal1.Mode = LiteralMode.PassThrough;
            }
        }
    </script>
    </script>
    
    <html>
    <head ></head>
    <body>
        <form id="form1" >
        <div>
            <br />
            <asp:RadioButton 
                ID="radioEncode" 
    
                GroupName="LiteralMode" 
                Checked="True" 
                Text="Encode" 
                AutoPostBack="True" />
            <br />
            <asp:RadioButton 
                ID="radioPassthrough" 
    
                GroupName="LiteralMode" 
                Text="PassThrough" 
                AutoPostBack="True" />
            <br />
            <br />
            <asp:Literal ID="Literal1" ></asp:Literal>&nbsp;</div>
        </form>
    </body>
    </html>
    

請參閱

參考

Literal Web 伺服器控制項概觀