HtmlContainerControl.InnerHtml 属性

定义

获取或设置位于指定 HTML 服务器控件的开始标记和结束标记之间的内容。

public:
 virtual property System::String ^ InnerHtml { System::String ^ get(); void set(System::String ^ value); };
[System.ComponentModel.Browsable(false)]
public virtual string InnerHtml { get; set; }
[<System.ComponentModel.Browsable(false)>]
member this.InnerHtml : string with get, set
Public Overridable Property InnerHtml As String

属性值

HTML 服务器控件的开始标记和结束标记之间的 HTML 内容。

属性

例外

存在多个 HTML 服务器控件。

- 或 -

HTML 服务器控件不是 LiteralControl,也不是 DataBoundLiteralControl

示例

下面的代码示例演示如何使用 InnerHtml 属性动态设置文本消息。

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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">

  protected void Page_Load(object sender, EventArgs e)
  {
    Message.InnerHtml = Server.HtmlEncode("Welcome! You accessed this page at: " + DateTime.Now);
  }
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>HtmlContainerControl Example</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
      <span id="Message" runat="server"></span>    
    </div>
    </form>
</body>
</html>
<%@ Page Language="VB" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">

  Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)

    Message.InnerHtml = Server.HtmlEncode("Welcome! You accessed this page at: " & DateTime.Now)

  End Sub

</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
    <title>HtmlContainerControl Example</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
      <span id="Message" runat="server"></span>    
    </div>
    </form>
</body>
</html>

注解

InnerHtml使用 属性以编程方式修改 HTML 服务器控件的开始标记和结束标记之间的内容。

属性 InnerHtml 不会在 HTML 实体之间自动对特殊字符进行编码。 HTML 实体允许显示浏览器通常解释为具有特殊含义的特殊字符,例如 < 字符。 字符 < 将被解释为标记的开头,并且不会显示在页面上。 若要显示字符 < ,需要使用实体 &lt;

例如,如果 InnerHtml 属性设置为 "<b> Hello </b>",则 <> 字符不会分别转换为 &lt;&gt;。 呈现的输出仍为: <b> Hello </b>。 浏览器将检测标记, <b> 并用粗体字体显示文本“Hello”。

注意

由于文本未进行 HTML 编码,因此可以在文本的 HTML 标记中嵌入脚本。 如果使用用户输入动态设置此属性,请确保验证 值以减少安全漏洞。 有关详细信息,请参阅 安全和用户输入

若要提供自动 HTML 编码和解码,请使用 InnerText 属性。

备注

如果没有子控件,则 InnerHtml 属性包含值 String.Empty

适用于

另请参阅