什么是LiteralControl?为什么用它?

pav*_*red 19 asp.net controls

什么是LiteralControl?我正在阅读LiteralContols,但我不确定为什么使用它们.我使用此代码列出页面中的控件 - 我有一个页面,其中包含标签和按钮.当我用这个

foreach (Control control in Page.Controls)
{
    Response.Write(control.GetType().ToString() + " - <b> " + control.ID + "</b><br />");    

    if (control is LiteralControl)
    {
        Response.Write("Textt :" + ((LiteralControl)control).Text.ToString() + " - " + 
            Server.HtmlEncode(((LiteralControl)control).Text + "<br />") ); 
    }
}
Run Code Online (Sandbox Code Playgroud)

我发现LiteralControls在我添加到页面的每个控件之前和之后都会生成并列出.文字控件也只有文本属性.

我仍然不确定为什么LiteralControls需要和使用?为什么LiteralControls用?为什么我添加到页面的控件在前后放置了一个LiteralControl?为什么他们只有Text Property?

Sky*_*ers 16

一个LiteralControl是用来在运行时注入HTML到您的网页.


ACP*_*ACP 14

MSDN Literal Control表示HTML页面中的HTML元素,文本和任何其他字符串,不需要在服务器上进行处理.

还可以看一下Literal Control的用法

A label呈现<span>标记.它允许您以编程方式更改要显示的某些文本的显示特性.A LiteralControl 完全呈现您想要的任何静态HTML.使用一个优于另一个没有一般优势.在某些情况下,一个可能比另一个更有用.例如,如果要显示静态文本,并且不对其进行编程更改,则可能需要使用LiteralControl.

  • builderau.com.au链接死了. (8认同)

小智 5

许多不了解语义标记价值的程序员(特别是主要是Windows窗体背景的程序员)将使用Label控件或HTML LABEL标记作为页面上以编程方式生成的文本的占位符.这样做的缺点是Label在HTML文档中具有语义含义.

使用文字为您提供了一个具有要挂接的ID属性的控件,同时允许您在其周围注入语义正确的标记.

此外,如果你最终没有将任何文本推送到LABEL标签,它仍然会在HTML中输出标签,如下所示:<label></label>,而没有文字的文字将不会输出任何内容 - 更清晰.