Literal 與 LiteralControl 區別 && Literal 模式的三個值

 

 

名稱空間瀏覽器

  • Literal 的名稱空間是 System.Web.UI.WebControls;
  • LiteralControl 的名稱空間是 System.Web.UI。

應用範圍ide

  • Literal 跟 Button、TextBox、HyperLink 等控件同樣能夠從工具欄中拖到頁面中,也能夠在代碼頁中用代碼建立。
  • LiteralControl 只能是在代碼頁中建立,要讓其輸出到客戶端,必須將其做爲子控件添加到其餘控件中,好比添加到 PlaceHolder 中。

應用方式函數

  • Literal 的構造函數不含任何參數,動態建立時必須使用以下方式:
    Literal l2 = new Literal();
    l2.Text = "<b>123</b>";
  • LiteralControl 的構造函數能夠帶一個參數 text,以實現一步到位:
    LiteralControl lc2 = new LiteralControl("<b>456</b>");

HTML 支持工具

  • Literal 輸出時是否進行 HTML 轉換(好比將 <b> 轉換成 &lt;b&gt;)取決於其 Mode,請參見:Literal 模式的三個值
  • LiteralControl 輸出時老是原樣輸出。 
<asp:Literal ID="_l0" runat="server"><>&"'</asp:Literal>
<asp:Literal ID="_l2" runat="server" Mode="PassThrough"><>&"'</asp:Literal>
<asp:Literal ID="_l1" runat="server" Mode="Encode"><>&"'</asp:Literal>
<asp:Literal ID="_l3" runat="server" Mode="Transform"><>&"'</asp:Literal>

輸出後,查看源代碼,能夠看到結果以下:編碼

<>&"'
<>&"'
&lt;&gt;&amp;&quot;'
<>&"'

Literal.Mode 的值是 LiteralMode 枚舉值之一:spa

  • PassThrough 未修改控件的內容。
  • Encode 控件的內容轉換爲 HTML 編碼的字符串。
  • Transform 從控件的內容中移除不受支持的標記語言元素。若是 Literal 控件在支持 HTML 或 XHTML 的瀏覽器上呈現,則不會修改該控件的內容。此爲默認值。

因此說,在 Web 瀏覽器上,Transform 和 PassThrough 是一個意思。code

相關文章
相關標籤/搜索