4

我正在使用标准的 HTMLEditorExtender 控件(ajax 控件工具包的一部分)。在原始 pageLoad 中,我用 html 填充它(包括 >p<、>br<、>strong< 和 >img< 标签。它在 HTMLEditorExtender 控件中显示良好。然后,当我执行异步回发(通过更新面板)时,所有 >img< 标签显示为实际的 html 而不是显示图像。所有其他标签仍然正确显示。

HTMLEditorExtender控件在异步回发后的标记如下: 在用于保存html编码值的不可见textarea中,所有正确显示的标签都被正常编码(即<和>),但img标签省略了和号在编码值之前(即 lt; 和 gt;)

更新:如果我将此代码放在我的 pageLoad 事件中,它工作正常,但我担心这有什么安全隐患?

if (IsPostBack)
{
    txtBookingConfirmation.Text = Server.HtmlDecode(txtBookingConfirmation.Text);
}

谁能告诉我如何防止控制这样做?

提前致谢

4

2 回答 2

7

这似乎是唯一的解决方案,还没有出现任何问题。

if (IsPostBack)
{
    txtBookingConfirmation.Text = Server.HtmlDecode(txtBookingConfirmation.Text);
}
于 2012-05-08T09:56:48.537 回答
0

我有同样的问题。每当我单击一个回发到页面的按钮时,HTMLEditorExtender 都会将文本框的内容更改为 HTML 标记显示的位置。看起来它正在用“&”替换所有“&”。因此,例如,所有的“<” 文本中的值正在更改为“& lt;”。“&gt”也发生这种情况。我刚刚升级到 2012 年 5 月 1 日发布的 AJAX 工具包。不确定那是什么版本。

我必须在“& amp;”中添加一个空格 等等,因为他们在我的帖子上渲染。当你看到这个的时候,把空间拿出来。

于 2012-05-03T20:46:57.310 回答