У меня есть пользовательский элемент управления ASP.NET, в котором размещается «HtmlImage». Атрибут src успешно установлен во время выполнения, но добавление визуализированного элемента управления в другой контейнер приводит к потере атрибута src.
Визуализированный элемент управления хранится в Session (я знаю, что это не идеально). Затем выполняется перенаправление на другую страницу, которая использует элемент управления в сеансе.
Возможно, это потому, что URL-адрес не закодирован?
Код:
<img id = "ctlImage" runat = "server" style = "border-style: none;" />
ctlImage.Src = String.Format("..\image.aspx?{0}", "...")





Вы пробовали использовать элемент управления asp: Image вместо простого старого тега img?
Я действительно не хотел идти по пути использования элемента управления asp: Image. Кажется, сейчас я вынужден это сделать, но все же я очень хочу найти причину, по которой у меня возникла описанная проблема. Отвечу на ваш вопрос: да, есть, и это работает.
Это может быть связано с тем, что атрибуты HtmlControls (включая HtmlImage) хранятся в ViewState. Кажется разумным, что ViewState не будет отправлен на другую страницу.
Вместо того, чтобы хранить элемент управления в сеансе, почему бы просто не сохранить сгенерированный HTML-код? Намного более легкий.
Почему целесообразно отказаться от ViewState? Поскольку такое поведение не наблюдается при использовании asp: Image? Причина отсутствия потоковой передачи сгенерированного html заключается в том, что страница, которая использует элемент управления, должна массировать элементы управления для печати. Я вижу альтернативу предварительному обмену сообщениями :)
О, теперь я понимаю, что мое название ошибочное. Простите.