Http Response Object в новом окне - PullRequest
1 голос
/ 28 июля 2011

У меня есть событие нажатия кнопки, настроенное для извлечения объекта массива байтов из моей БД, и затем оно будет показывать файл в новом окне браузера. Прямо сейчас у меня так много:

Response.ContentType = "image/jpeg";
Response.AddHeader("content-length", fileBytes.Length.ToString());
Response.BinaryWrite(fileBytes);

где fileByes - мой байтовый массив. Это работает отлично, но мне нужно заставить его открыться в новом окне. Я попытался добавить javascript к ответу с response.write, но это не похоже на работу.

Ответы [ 4 ]

2 голосов
/ 28 июля 2011

Запись вашего ответа обрабатывается на стороне сервера.Отображение вашего ответа обрабатывается на стороне клиента.Вы должны указать своему клиенту открыть новое окно с учетом ответа от сервера, например,

<a href="getImage.aspx" target="_blank">Get Image</a>

Где getImage.aspx - страница ASP.NET, отвечающая за обслуживание изображения / страницы.

2 голосов
/ 28 июля 2011

Невозможно открыть новое окно из кода на стороне сервера. Вам нужно будет вызвать window.open() из JavaScript и передать URL на страницу, которая возвращает файл.

1 голос
/ 28 июля 2011

Вы хотели бы, чтобы ваша кнопка щелкала, чтобы открыть новое окно браузера, которое затем вызывает ваш код, который вы опубликовали в своем вопросе.Вы пытаетесь сделать это как бы задом наперед.

0 голосов
/ 16 февраля 2012

Используйте гиперссылку с URL-адресом на пустое значение .aspx,
передайте параметры в URL-адресе как ?param=4&param2 ... и т. Д.
В событии загрузки страницы поместите туда свой код ответа.

...