【问题标题】:ASP.Net literal. Insert htmlASP.Net 文字。插入 html
【发布时间】:2012-11-22 06:49:26
【问题描述】:

我的页面上有简单的文字。

<asp:Literal ID="litDescription" runat="server"></asp:Literal>

当我尝试将以下文本设置为文字时:

<p><div>Some Text</div></p>

在我的浏览器标记中我看到了

<p></p>
    <div>Some Text</div>
<p></p>

为什么有两个'p'标签?我需要有

<p><div>Some Text</div></p>.

【问题讨论】:

标签: asp.net html literals


【解决方案1】:

P 中的 div 是无效的 HTML。 我不认为 .net 正在编造

。 我认为它来自您的浏览器。

【讨论】:

  • +1。如果您执行View Source,您将看到没有额外的p 标签,但您会在“检查器”(Chrome、FF、IE 等)中。浏览器正在尝试修复 DOM 以处理无效情况。
【解决方案2】:

&lt;p&gt; 标记中包含&lt;div&gt; 标记是不好的语法。应该是&lt;div&gt;&lt;p&gt;Some Text&lt;/p&gt;&lt;/div&gt;

在 C# 中:

litDescription.Text = "&lt;div&gt;Some Text&lt;/div&gt;";

但是,这仍然是不好的语法。如果您使用 div 将内联样式应用于&lt;p&gt; 标记的一部分,请使用&lt;span&gt; 而不是&lt;div&gt;

litDescription.Text = "Some Text"; 是正确的 html 语法。

【讨论】:

  • 文字控件不将其内容包装在&lt;p&gt;标签中。
  • 我的错误。修复它,以便您可以删除 -1。
  • litDescription.Text = "Some Text";只会在页面上写Some Text,没有标签。在span 中实现某些文本的最简单方法是使用Label 控件而不设置AssociatedControlId 属性。
  • 这是假设他出于某种原因使用了不正确的语法,例如&lt;p&gt;&lt;span&gt;Some Text&lt;/span&gt; and some more text&lt;/p&gt;
【解决方案3】:

一种更符合asp.net web表单的服务器端控制结构的不同方法。

<p><div>
<asp:Literal id=DescriptionLiteral runat="server" />
</div></p>

// c# code:
DescriptionLiteral.Text = "Some Text";

请注意,嵌套在 &lt;p&gt; 标记中的 &lt;div&gt; 标记不是有效的 HTML 标记。

【讨论】:

    猜你喜欢
    • 2015-07-09
    • 1970-01-01
    • 2019-01-20
    • 1970-01-01
    • 2017-01-13
    • 2015-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多