这就是literal控件
用于在网页上呈现可能出现语言标记的文本的解决方案.
此控件有一个叫LiteralMode的枚举属性:Encode,Passthrough,Transform.
Encode属性用于将文本进行HTML编码后原样显示到浏览器上。
Passthrough属性用于将Text属性直接传送给浏览器,不经过任何编码或修改。
Transform属性用于移除不受支持的标记元素,在这种情况下,目标标记语言不支持的所有元素都不会呈现(移除标记,保留内容) 。
注意:
如果显示Literal控件的设备或浏览器支持HTML或XHTML语言,那么passthrough和Transform属性会显示相同的结果。如果显示Literal控件的设备或浏览器并不支持HTML或XHTML,例如手机上的浏览器,那么指定transform值后,literal控件会在显示文本前将不受支持的标记移除,而保留内容。(关于这一点,因为本为没有做过手机开发,所以无法验证)
以下为一个在PC浏览器上的小示例,此例中,指定passthrough或Transform值会显示相同的结果。
以下为页面代码
<%
@ Page Language
=
"
C#
"
AutoEventWireup
=
"
true
"
CodeFile
=
"
T_Literal.aspx.cs
"
Inherits
=
"
T_Literal
"
%>
<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >
< html xmlns ="http://www.w3.org/1999/xhtml" >
< head runat ="server" >
< title > 无标题页 </ title >
</ head >
< body >
< form id ="form1" runat ="server" >
< div >
< asp:RadioButton ID ="radioEncode" runat ="server" GroupName ="LiteralMode" Checked ="true" Text =Encode AutoPostBack =true />
< asp:RadioButton ID ="radioPassthrough" runat ="server" GroupName ="LiteralMode" Text ="Passthrough" AutoPostBack ="true" />
< asp:RadioButton ID ="radioTransform" runat ="server" Text ="Transform" AutoPostBack ="true" GroupName ="LiteralMode" />< br />< hr />< br />
< asp:Literal ID ="Literal1" runat ="server" ></ asp:Literal >
</ div >
</ form >
</ body >
</ html >
<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >
< html xmlns ="http://www.w3.org/1999/xhtml" >
< head runat ="server" >
< title > 无标题页 </ title >
</ head >
< body >
< form id ="form1" runat ="server" >
< div >
< asp:RadioButton ID ="radioEncode" runat ="server" GroupName ="LiteralMode" Checked ="true" Text =Encode AutoPostBack =true />
< asp:RadioButton ID ="radioPassthrough" runat ="server" GroupName ="LiteralMode" Text ="Passthrough" AutoPostBack ="true" />
< asp:RadioButton ID ="radioTransform" runat ="server" Text ="Transform" AutoPostBack ="true" GroupName ="LiteralMode" />< br />< hr />< br />
< asp:Literal ID ="Literal1" runat ="server" ></ asp:Literal >
</ div >
</ form >
</ body >
</ html >
以下为隐藏代码
using
System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class T_Literal : System.Web.UI.Page
{
protected void Page_Load( object sender, EventArgs e)
{
Literal1.Text = " this <hr><b>text</b><a>aaa</a><ccc> is inserted dynamically " ;
if (radioEncode.Checked)
{
Literal1.Mode = LiteralMode.Encode;
}
if (radioPassthrough.Checked)
{
Literal1.Mode = LiteralMode.PassThrough;
}
if (radioTransform.Checked)
{
Literal1.Mode = LiteralMode.Transform;
}
}
}
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class T_Literal : System.Web.UI.Page
{
protected void Page_Load( object sender, EventArgs e)
{
Literal1.Text = " this <hr><b>text</b><a>aaa</a><ccc> is inserted dynamically " ;
if (radioEncode.Checked)
{
Literal1.Mode = LiteralMode.Encode;
}
if (radioPassthrough.Checked)
{
Literal1.Mode = LiteralMode.PassThrough;
}
if (radioTransform.Checked)
{
Literal1.Mode = LiteralMode.Transform;
}
}
}