打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
ASP.NET Literal控件用法

在您要以编程方式设置文本而不添加额外的 HTML 标记时,可以向页面添加 Web 服务器控件。在要向页面动态添加文本而不添加任何不属于该动态文本的元素时,Literal 控件非常有用。例如,您可以使用 Literal 控件来显示从文件或流中读取的 HTML。

注意
如果要显示静态文本,则可以使用 HTML 呈现它;不需要 Literal 控件。只有在需要以编程方式呈现文本时才使用 Literal 控件。

向 Web 窗体页添加 Literal 控件
将 <asp:Literal> 元素键入页面。

下面的示例显示一个简单页,该页在运行时显示标题新闻。该页的主体(包括 Literal 控件)类似于下面的代码:

<body>
   <form runat="server">
      <h1><asp:Literal id="Headline" runat=server /></h1>
   </form>
</body>

或者,将 Mode 属性设置为 Transform、PassThrough 或 Encode。Mode 属性指定控件如何处理您添加到该控件中的标记。

如果指定 PassThrough,则 Text 属性的全部内容不经任何修改即传递给设备或浏览器。例如,如果 Literal 控件的 Text 属性包含 <hr> 标记,则无论该标记是否受支持,都将传递给所有设备和浏览器。

如果指定 Encode,则 Text 属性的内容在呈现前会转换为 HTML 编码字符串。例如,如果 Literal 控件的 Text 属性包含 <hr> 标记,则将该标记转换为 <Hr> 并发送到设备或浏览器。

如果指定 Transform,则 Text 属性的呈现行为取决于要呈现的标记的类型。如果 Literal 控件在支持 HTML 或 XHTML 的设备或浏览器上呈现,指定 Transform 会产生与指定 PassThrough 相同的行为。Text 属性的所有标记和元素都呈现到请求浏览器。

使用 HTML 或 XHTML 之外的标记语言(如 WML 或 cHTML)呈现 Literal 控件时,可以使用 Transform 值移除不受支持的标记元素。在此情况下,控件 Text 属性的所有不受目标标记语言支持的标记语言元素都不会呈现。例如,如果 Literal 控件的 Text 属性包含 <hr> 标记,则在将内容发送到 WML 设备前移除该标记。如果不受支持的标记包含内容,则仅移除标记,而将内容发送到设备或浏览器。例如,如果 Text 属性包含内容 <XYZ>Test</XYZ>,则移除 <XYZ></XYZ> 标记,并将文本“Test”发送到设备或浏览器。

将代码添加到页面上以在运行时设置控件的 Text 属性。

下面的示例演示如何以编程方式设置 Literal 控件的文本和编码。该页包含一组单选按钮,允许用户在编码文本和传递文本之间选择。

注意
如果您正将 Text 属性设置为来自不受信任源的文本,则应将控件的 Mode 属性设置为 Encode,这样标记才不会形成可执行标记。

<%@ Page Language="C#" %>

<script runat="server">
    protected void Page_Load(object sender ,EventArgs e)
    {
        // Literal1.Text = "This <b>text</b> is inserted dynamically.";

        Literal1.Text = "<script language='javascript'>alert('你中彩了!');<"+"/script>";
        if(radioEncode.Checked == true)
        {
          
            Literal1.Mode = LiteralMode.Encode;
        }
        if(radioPassthrough.Checked == true)
        {
            Literal1.Mode = LiteralMode.PassThrough;
        }
    }
</script>

<html>
<head id="Head1" runat="server">
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <br />
            <asp:RadioButton ID="radioEncode" runat="server" GroupName="LiteralMode" Checked="True"
                Text="Encode" AutoPostBack="True" />
            <br />
            <asp:RadioButton ID="radioPassthrough" runat="server" GroupName="LiteralMode" Text="PassThrough"
                AutoPostBack="True" />
            <br />
            <br />
            <asp:Literal ID="Literal1" runat="server"></asp:Literal> </div>
    </form>
</body>
</html>

当你选择PassThrough时跳出窗体,选择Encode时原样输出

在页上显示静态内容并允许您以编程方式对其进行操作。

<asp:Literal
      EnableTheming="True|False"
      EnableViewState="True|False"
      ID="string"
      Mode="Transform|PassThrough|Encode"
      OnDataBinding="DataBinding event handler"
      OnDisposed="Disposed event handler"
      OnInit="Init event handler"
      OnLoad="Load event handler"
      OnPreRender="PreRender event handler"
      OnUnload="Unload event handler"
      runat="server"
      SkinID="string"
      Text="string"
      Visible="True|False"
/>

使用 控件在 Web 窗体页上显示静态文本。与 控件不同的是,Literal 不允许您向其内容应用样式。

文本在 Literal 控件中显示之前并非 HTML 编码形式。这使得可以在文本中的 HTML 标记中嵌入脚本。如果控件的值是由用户输入的,请务必要对输入值进行验证以防止出现安全漏洞。

示例

下面的示例演示如何使用 Literal 控件显示静态文本。

<%@ Page Language="C#" AutoEventWireup="True" %>

<html>
<head>

   <script runat="server">

      void ButtonClick(Object sender, EventArgs e)
      {
         Literal1.Text="Welcome to ASP.NET!!";
      }

   </script>

</head>
<body>
   <form runat="server">
      <h3>Literal Example</h3>

      <asp:Literal id="Literal1"
           Text="Hello World!!"
           runat="server"/>

      <br><br>

      <asp:Button id="Button1"
           Text="Change Literal Text"
           OnClick="ButtonClick"
           runat="server"/>

   </form>
</body>
</html>

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
asp.net页面head区动态设置全攻略
标题:ASP.NET 2.0服务器控件与form runat=server标记
DataGrid Web控件深度历险(3) part1
Asp.net FileUpload控件
asp.net夜话之六:asp.net基本控件
一步步学会使用ASP.NET 4 WEB应用程序中使用URL Routing(翻译) - ...
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服