在您要以编程方式设置文本而不添加额外的 HTML 标记时,可以向页面添加 Literal 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 属性指定控件如何处理您添加到该控件中的标记。
将代码添加到页面上以在运行时设置控件的 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"
/>
使用 Literal 控件在 Web 窗体页上显示静态文本。与 Label控件不同的是,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>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· 展开说说关于C#中ORM框架的用法!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?