c# - 无论如何,带有 runat=server 和 InnerHtml html 标记的 ASP.NET Div

标签 c# asp.net htmlgenericcontrol

我对 HtmlGenericControl 对象的 InnerHTML 属性有疑问。我认为如果我将“xx”分配给 InnerText 属性,它将被编码 - 并且确实如此 - 如果我将相同的字符串分配给 InnerHtml 它不会被编码 - 但它会被编码!我很困惑,因为它与我在其他帖子中看到的相反。

背景: 我分配的字符串是从数据库加载的,并在其生命周期内分配给各种其他字符串,然后最终使用 Replace 方法替换占位符。它仍然包含“xx”而不是编码版本...为了绝对确定,我绕过了整个过程并直接在后面的代码中分配了“xx”字符串 - 结果仍然保持不变(即编码)。

有人可以解释一下为什么会发生这种情况吗?我做错了什么?谢谢。

编辑以使问题 100% 清晰: 我需要以编程方式将“xx”分配给 HTMLGenericControl 对象,并将其呈现为 HTML 标记而不是编码文本。发生的情况是我可以看到屏幕上写着“xx” - 这不是我想要的,我想看到粗体文本。我认为(并且在文档中对此进行了描述)如果我分配给 InnerHtml 属性,则该字符串不会被编码并“按原样”显示。然而它的行为却并非如此。

最佳答案

如果在您的情况下用 ASP:Literal 控件替换 HTMLGenericControl 是可行的,我会这样做。

我刚刚在升级 CMS 系统时遇到了类似的情况,这就是我的处理方式。

关于c# - 无论如何,带有 runat=server 和 InnerHtml html 标记的 ASP.NET Div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12402810/

相关文章:

c# - 使用 RDLC 的报告无法加载数据集

c# - Entity Framework 检查数据库表是否添加了新记录

asp.net - 32 位池和 64 位池之间的内存使用情况

asp.net - 从 Excel 电子表格复制并粘贴到 ASP.NET 控件

html - 使 Html Generic Control 跨越整个单元格,即使它是空的

ASP.NET:以编程方式设置 HTML 元素的样式

c# - 具有 LINQ 扩展方法的多个 WHERE 子句

c# - 在 C# 中从列表中检索最大元素索引的优雅方法

c# - ICommand 的 CanExecuteChanged 事件