从文字控件显示 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>
文字也可以这样定义:
<asp:Literal runat="server text="Hi there!" />
要访问 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的主要内容,如果未能解决你的问题,请参考以下文章
C# winform Label控件 已经自适应实现多行显示了 我现在要取出每行的文本 该怎么做? 求助! 多谢!