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 網頁
從 [工具箱] 的 [標準] 索引標籤,將 Literal 控制項拖曳到頁面。
選項性的,在 [屬性] 視窗的 [行為] 類別中,將 Mode 屬性設定為 Transform、PassThrough 或 Encode。Mode 屬性可以指定控制項如何處理加入其中的任何標記。如需詳細資訊,請參閱 Literal Web 伺服器控制項概觀。
以下範例說明在執行期間顯示標題的簡單網頁。網頁的主體,包括 Literal 控制項,看起來可能如下。
<body> <form > <h1><asp:Literal id="Headline" runat=server mode="PassThrough"/></h1> </form> </body>
在執行階段,將程式碼加入至您的網頁以設定控制項的 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> </div> </form> </body> </html>