我对 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/