У меня есть простой обработчик ASHX, который возвращает динамически сгенерированное изображение; изображение генерируется из созданного пользователем класса, и объект, принадлежащий этому классу, передается обработчику с помощью Session (я бы предпочел избегать использования QueryString).
Обработчик используется как URL-адрес изображения в форме ASP, которая очень проста: выпадающий список, кнопка и изображение. По сути, в зависимости от того, что пользователь выбирает из списка, соответствующее изображение будет создано после нажатия кнопки.
В начале фактическое изображение имеет свойство Visible, установленное на false; Я не хочу, чтобы обработчик отображал что-либо до того, как все данные будут там.
После нажатия кнопки добавляется требуемый параметр Session, содержащий нужный объект, и страница обновляется с помощью Server.Transfer. Когда метод Page_load обнаруживает, что параметр Session установлен правильно, он устанавливает для параметра Visible изображения значение true.
После этого запускается обработчик и генерирует изображение.
Пока все хорошо... Однако, если теперь пользователь выберет что-то другое из списка и нажмет кнопку, несмотря на то, что в сеансе передается правильный объект, изображение не будет обновлено. На самом деле обработчик даже не запустится (если я поставлю там точку останова). Мне нужно закрыть окно браузера и снова открыть его, чтобы оно заработало.
Любые идеи, что может быть причиной такого поведения?
Я подозреваю, что ответ очень прост, и я просто не знаю ничего фундаментального об ASP (или обработчиках)...