HTMLEditorExtender在异步回发上编码img标记

时间:2012-02-03 09:21:15

标签: asp.net encoding asynchronous ajaxcontroltoolkit html-editor

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

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

更新:如果我将此代码放在pageLoad事件中,它可以正常工作,但我对这有什么安全隐患保持警惕?

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

任何人都可以告诉我如何阻止控制这样做吗?

提前致谢

2 个答案:

答案 0 :(得分:7)

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

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

答案 1 :(得分:0)

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

我不得不在“& amp;”中放置一个空格等等,因为他们在我的帖子上呈现。当你看这个时,请把空间拿出来。