HTMLEditorExtender кодирует тег img при асинхронной обратной передаче

Я использую стандартный элемент управления HTMLEditorExtender (часть набора инструментов управления ajax). В исходном pageLoad я заполняю его html (включая теги >p‹, >br‹, >strong‹ и >img‹. Он отлично отображается в элементе управления HTMLEditorExtender. Затем, когда я выполняю асинхронную обратную передачу (через панель обновления), все теги >img‹ отображаются как фактический html вместо отображения изображения Все остальные теги по-прежнему отображаются правильно.

Разметка элемента управления HTMLEditorExtender выглядит следующим образом после асинхронной обратной передачи: в невидимой текстовой области, используемой для хранения закодированного значения html, все правильно отображаемые теги закодированы в обычном режиме (т. е. ‹ и ›), но теги img пропускают амперсанд перед закодированным значением (т.е. lt; и gt;)

ОБНОВЛЕНИЕ: он отлично работает, если я помещаю этот код в свое событие pageLoad, но я опасаюсь, какие последствия для безопасности это имеет?

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

Может ли кто-нибудь сказать мне, как предотвратить контроль от этого?

заранее спасибо


person hofnarwillie    schedule 03.02.2012    source источник


Ответы (2)


Кажется, это единственное решение, и пока проблем не возникло.

if (IsPostBack)
{
    txtBookingConfirmation.Text = Server.HtmlDecode(txtBookingConfirmation.Text);
}
person hofnarwillie    schedule 08.05.2012

У меня такая же проблема. Всякий раз, когда я нажимаю кнопку, которая отправляет обратно на страницу, HTMLEditorExtender изменяет содержимое текстового поля туда, где отображается разметка HTML. Похоже, он заменяет все «&» на «& amp;». Так, например, все "& lt;" значения в тексте изменяются на "<". Это происходит и с ">". Я только что обновился до набора инструментов AJAX, выпущенного 01.05.2012. Не уверен, что это за версия.

Мне пришлось поставить пробел в "& amp;" и тому подобное, поскольку они рендерились на моем посту. Просто убери пространство, когда смотришь на это.

person whofungpoo    schedule 03.05.2012
comment
Привет, @whofungpoo, спасибо за участие. Просто примечание, это не ответ. Комментарии должны быть опубликованы, нажав кнопку «Добавить комментарий» к сообщению, на которое вы ссылаетесь. Публикуйте только те ответы, которые полезны для вопроса. Тем не менее, с тех пор я без проблем использую метод Server.HtmlDecode(), как описано в обновлении. Надеюсь, это поможет вам. - person hofnarwillie; 04.05.2012