从文字控件显示 HTML

Posted

技术标签:

【中文标题】从文字控件显示 HTML【英文标题】:Display HTML from Literal Control 【发布时间】:2021-03-28 16:22:51 【问题描述】:

最近的 CMS 升级给我带来了问题。以前包含内容的区域是 htmlGenericControl,我能够将 innerHTML 附加到页面上呈现的 div 上。请参阅下面的代码。

        If TypeOf ctrl is HtmlGenericControl then 
          Dim contact as HtmlGenericControl = ctrl
              html.appendFormat(("<div class=""col-sm-6 col-md-6 col-lg-6"">0</div>" + Environment.NewLine), contact.innerHTML)
        End If

新更改已将此内容区域更改为文字控件,我在从文字控件获取 HTML 时遇到问题。我可以使用 .ClientID 获取控件 ID,因此我看到仍然能够找到正确的 div,但我需要在这个 div 中获取 Html。有人能指出我正确的方向,以便我进一步调查吗?

 If TypeOf ctrl is LiteralControl  then
   Dim contact as LiteralControl  = ctrl
   html.appendFormat(("<div class=""col-sm-6 col-md-6 col-lg-6"">0</div>" + Environment.NewLine), contact.Text)
 End If

【问题讨论】:

【参考方案1】:

ASP Literal 控件通常仅用于呈现文本,不创建跨度或其他可返回或设置样式的 HTML 标记。

以下是由以下 ASP 文字生成的 HTML 标记示例:

<asp:Literal runat="server">Hi there!</asp:Literal>

文字也可以这样定义: &lt;asp:Literal runat="server text="Hi there!" /&gt;

要访问 ASP 文字控件的文本,只需使用 .Text 属性。

MyLiteral.Text = "Hi there!"

如果需要,您实际上可以将 HTML 片段传递给文字文本,它们将正常呈现。但是,如果您实际上是在设计服务器端代码并​​且需要这样做,请考虑改用 asp:Labels(呈现跨度)和 asp:Panels(呈现 div)。

MyLiteral.Text = "<div style='width: 100px; height: 100px; background-color: yellow;'></div>"

Here's Microsoft's documentation on ASP literals;它包括所有可供访问的属性。

【讨论】:

以上是关于从文字控件显示 HTML的主要内容,如果未能解决你的问题,请参考以下文章

WPF中啥控件能够既显示图片,又显示文字

Qt中有既可显示图像又可显示文字的widget吗

C# winform Label控件 已经自适应实现多行显示了 我现在要取出每行的文本 该怎么做? 求助! 多谢!

我用了datalist之后,这个控件中的包含的所有HTML标签都不显示,这是为啥?

8常用控件

vb 遍历窗口下所有控件里的文字(高分)