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

相关文章
相关标签/搜索