Response.BinaryWrite () работает для одной страницы, а не для другой - PullRequest
0 голосов
/ 21 сентября 2011

У меня есть вспомогательная функция в библиотеке классов, которая создает и обслуживает пользовательский PDF:

byte[] file = GetPdfBytesFromHtmlString( htmlCodeToConvert );

System.Web.HttpResponse response = System.Web.HttpContext.Current.Response;
response.Clear();
response.AddHeader( "Content-Type", "binary/octet-stream" );
response.AddHeader( "Content-Disposition", "attachment; filename=" + filename + "; size=" + file.Length.ToString() );
response.Flush();
response.BinaryWrite( downloadBytes );
response.Flush();
response.End();

Когда этот код выполняется на одной странице, все работает. Другая страница в основном идентична, единственное отличие заключается в том, что вывод HTML для записи в PDF, который, как я проверял, работает правильно. Однако ничего не происходит. Я прошел через код, он просто идет своим чередом, но браузер не предлагает загрузить.

Я знаю, что пропускаю много кода, но поскольку он работает в одном случае, а не в другом, я в тупике и ищу идеи для поиска решения.

Ответы [ 3 ]

1 голос
/ 21 сентября 2011

Я очень не хочу отвечать на свой вопрос, потому что это означает, что я не провел достаточно исследований, прежде чем задавать его.Однако я просмотрел его и понял, что тестирую только в Firefox.Запуск его в IE выявил ошибку сценария, которая содержала текст «Ошибка разбора рядом с«% PDF - 1,4% », который я видел при поиске, но не обнаруживал.не работает использует панель обновления AJAX, которую я не понял, когда заявил, что код идентичен. Код щелчка кнопки экспорта есть, но разметка нет.сообщение содержит дополнительную информацию и обходной путь.

0 голосов
/ 05 марта 2013

Если проблема связана с панелью обновления, то все, что вам нужно сделать, это добавить полный триггер обратной записи для элемента управления, вызывающего функцию.

0 голосов
/ 21 сентября 2011

Ваш байтовый массив, который вы создаете, называется файлом в коде, но вы записываете в двоичном виде «downloadbytes» - это проблема?

...