ASP.NET的asp:label和asp:literal
2015-12-28 09:46
381 查看
一、方案
Literal 最常用于向页面中动态添加内容。
二、背景
Literal 控件表示用于向页面添加内容的几个选项之一。对于静态内容,无需使用容器,可以将标记作为 HTML
直接添加到页面中。但是,如果要动态添加内容,则必须将内容添加到容器中。典型的容器有 Label 控件、Literal 控件、Panel
控件和 PlaceHolder 控件。
Literal 控件与 Label 控件的区别在于 Literal 控件不向文本中添加任何 HTML 元素。(Label
控件呈现一个 span 元素。)因此,Literal 控件不支持包括位置属性在内的任何样式属性。但是,Literal
控件允许指定是否对内容进行编码。
Panel 和 PlaceHolder 控件呈现为 div 元素,这将在页面中创建离散块,与 Label 和 Literal
控件进行内嵌呈现的方式不同。
通常情况下,当希望文本和控件直接呈现在页面中而不使用任何附加标记时,可使用 Literal 控件。
在 Literal 控件中编码内容
Literal 控件支持 Mode 属性,该属性用于指定控件对您所添加的标记的处理方式。可以将 Mode
属性设置为以下值:
·Transform. 将对添加到控件中的任何标记进行转换,以适应请求浏览器的协议。如果向使用 HTML
外的其他协议的移动设备呈现内容,此设置非常有用。
·PassThrough. 添加到控件中的任何标记都将按原样呈现在浏览器中。
·Encode. 将使用 HtmlEncode 方法对添加到控件中的任何标记进行编码,这会将 HTML
编码转换为其文本表示形式。例如, 标记将呈现为
。当希望浏览器显示而不解释标记时,编码将很有用。编码对于安全也很有用,有助于防止在浏览器中执行恶意标记。显示来自不受信任的源的字符串时推荐使用此设置。
三、如何:向 Web 窗体页添加 Literal Web 服务器控件
在您要以编程方式设置文本而不添加额外的 HTML 标记时,可以向 Web 窗体页添加 Literal Web
服务器控件。在要向页面动态添加文本而不添加任何不属于该动态文本的元素时,Literal 控件是一种很有用的方式。例如,您可以使用
Literal 控件来显示您从一个文件或者流中读取的 HTML。
说明: 如果想显示静态文本,可以使用 HTML 呈现它;不需要 Literal 控件。只有在需要动态更改服务器代码中的内容时才使用
Literal 控件。
1、从工具箱的“标准”选项卡中,将 Literal 控件拖动到页面上。
2、或者,在“属性”窗口的“行为”类别下,将 Mode 属性设置为 Transform、PassThrough 或者
Encode。Mode
属性指定该控件如何处理向其添加的任何标记。下面的示例显示一个简单网页,该页在运行时显示标题新闻。该页的主体(包括 Literal
控件)类似于下面的代码。
mode="PassThrough"/>
3、将代码添加到页面上以在运行时设置控件的 Text 属性。
下面的示例显示如何以编程方式设置 Literal
控件的文本和编码。该页包含一组单选按钮,允许用户在编码文本和传递文本之间选择。
说明: 如果您正将 Text 属性设置为来自不受信任源的文本,则要将控件的 Mode 属性设置为
Encode,这样标记才不会形成可执行标记。
Literal 最常用于向页面中动态添加内容。
二、背景
Literal 控件表示用于向页面添加内容的几个选项之一。对于静态内容,无需使用容器,可以将标记作为 HTML
直接添加到页面中。但是,如果要动态添加内容,则必须将内容添加到容器中。典型的容器有 Label 控件、Literal 控件、Panel
控件和 PlaceHolder 控件。
Literal 控件与 Label 控件的区别在于 Literal 控件不向文本中添加任何 HTML 元素。(Label
控件呈现一个 span 元素。)因此,Literal 控件不支持包括位置属性在内的任何样式属性。但是,Literal
控件允许指定是否对内容进行编码。
Panel 和 PlaceHolder 控件呈现为 div 元素,这将在页面中创建离散块,与 Label 和 Literal
控件进行内嵌呈现的方式不同。
通常情况下,当希望文本和控件直接呈现在页面中而不使用任何附加标记时,可使用 Literal 控件。
在 Literal 控件中编码内容
Literal 控件支持 Mode 属性,该属性用于指定控件对您所添加的标记的处理方式。可以将 Mode
属性设置为以下值:
·Transform. 将对添加到控件中的任何标记进行转换,以适应请求浏览器的协议。如果向使用 HTML
外的其他协议的移动设备呈现内容,此设置非常有用。
·PassThrough. 添加到控件中的任何标记都将按原样呈现在浏览器中。
·Encode. 将使用 HtmlEncode 方法对添加到控件中的任何标记进行编码,这会将 HTML
编码转换为其文本表示形式。例如, 标记将呈现为
。当希望浏览器显示而不解释标记时,编码将很有用。编码对于安全也很有用,有助于防止在浏览器中执行恶意标记。显示来自不受信任的源的字符串时推荐使用此设置。
三、如何:向 Web 窗体页添加 Literal Web 服务器控件
在您要以编程方式设置文本而不添加额外的 HTML 标记时,可以向 Web 窗体页添加 Literal Web
服务器控件。在要向页面动态添加文本而不添加任何不属于该动态文本的元素时,Literal 控件是一种很有用的方式。例如,您可以使用
Literal 控件来显示您从一个文件或者流中读取的 HTML。
说明: 如果想显示静态文本,可以使用 HTML 呈现它;不需要 Literal 控件。只有在需要动态更改服务器代码中的内容时才使用
Literal 控件。
1、从工具箱的“标准”选项卡中,将 Literal 控件拖动到页面上。
2、或者,在“属性”窗口的“行为”类别下,将 Mode 属性设置为 Transform、PassThrough 或者
Encode。Mode
属性指定该控件如何处理向其添加的任何标记。下面的示例显示一个简单网页,该页在运行时显示标题新闻。该页的主体(包括 Literal
控件)类似于下面的代码。
3、将代码添加到页面上以在运行时设置控件的 Text 属性。
下面的示例显示如何以编程方式设置 Literal
控件的文本和编码。该页包含一组单选按钮,允许用户在编码文本和传递文本之间选择。
说明: 如果您正将 Text 属性设置为来自不受信任源的文本,则要将控件的 Mode 属性设置为
Encode,这样标记才不会形成可执行标记。
相关文章推荐
- ASP.NET Page.IsPostBack
- ASP.NET  Request.Params用法
- ASP.NET 内置票据认证
- ASP.NET  Request.Query…
- ASP.NET .ascx文件
- ASP.NET  DATASET用法
- ASP.NET  DropDownList&…
- ASP.NET Web API WebHost宿主环境中管道、路由
- Global.asax 文件使用 ASP.NET监听器、过滤器
- asp版本:输入密码查看网页内容
- ASP.NET中的Session怎么正确使用[转]
- 浅析ASP.NET MVC路由配置
- ASP.NET求职总结
- ASP.NET内置对象——Request和Response
- asp.net项目页面间传值的几种方式(部分转载)
- asp.net网页间传值方式之Response.Redirect和Server.Transfer
- ASP.NET MVC 实现AJAX跨域请求的两种方法
- ASP.NET MVC 防止 CSRF 的方法
- 将asp.net webapi的运行时版本由4.0升级到4.5.1时遇到的问题及解决
- 为支持ASP.NET5跨平台,Jexus再添新举措