我正在使用标准的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);
}
任何人都可以告诉我如何阻止控制这样做吗?
提前致谢
答案 0 :(得分:7)
这似乎是唯一的解决方案,并没有给出任何问题。
if (IsPostBack)
{
txtBookingConfirmation.Text = Server.HtmlDecode(txtBookingConfirmation.Text);
}
答案 1 :(得分:0)
我遇到同样的问题。每当我单击回发到页面的按钮时,HTMLEditorExtender会将文本框的内容更改为HTML标记显示的位置。看起来它正在取代所有的“&”用“& amp;”。所以,例如,所有的“& lt;”文本中的值正在变为“& amp; lt;”。这也发生在“& gt”上。我刚刚升级到2012年5月1日发布的AJAX工具包。不确定是什么版本。
我不得不在“& amp;”中放置一个空格等等,因为他们在我的帖子上呈现。当你看这个时,请把空间拿出来。