PDTUM Ответов: 1

iFrame не видит pdf-документ


Привет,

Я пытаюсь загрузить pdf-документ в iFrame из кода позади. Я использую следующий код в коде позади загрузки страницы:

if (Session["Document"].ToString() != string.Empty)
        {
            string document = Session["Document"].ToString();
            pdfIframe.Attributes.Add("src", document);
        }


Он отлично работает, когда я запускаю его изнутри Visual Studio 10 с помощью внутреннего веб-сервера, но он вообще не работает, когда он загружается на сайт (он выдает страницу ошибки), все остальное (например, база данных, запросы и т. д.) работает нормально.
Любая помощь будет оценена по достоинству.

Что я уже пробовал:

Я сделал поиск в Google и попробовал несколько различных вариантов кода. Я изменил файл web. config на более раннюю версию. Я пытался запустить его в Firefox и IE. Не повезло.

Afzaal Ahmad Zeeshan

Какая ошибка?

Может быть, это требует какого-то дополнения?

PDTUM

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

Что касается «некоторых дополнений» ... честно говоря, это слишком расплывчато для ответа. Как уже говорилось, я использую внутреннюю функцию браузера asp.net, которая поставляется с Visual Studio 10, и она отлично работает. Поэтому я бы «предположил», что кто-то с большим опытом работы с браузерами, чем я, может сказать мне, нужно ли мне что-то добавить в программу, чтобы она работала в браузерах стандартного типа. Если это так, то знание того, какое дополнение требуется, будет ответом, который я ищу. Единственный другой способ, который я могу придумать для решения проблемы, - это не использовать PDF-файлы, а вместо этого выполнить извлечение из базы данных информации в виде текста и разместить ее в текстовой области (не очень красиво); и это кажется очень плохим компромиссом. Еще раз спасибо за ваш вклад. Я все слышу, если вы можете следить за этим. С уважением, Пэт

ZurdoDev

Вы должны найти ошибку, иначе нет никакого способа помочь.

1 Ответов

Рейтинг:
1

PDTUM

Последующие действия; хотя я все еще пытаюсь прочитать ошибку страницы (пока безуспешно), я подумал о переключении на программу чтения Google Docs, чтобы проверить, не связана ли ошибка с программой чтения Adobe (не редкость). Опять же, он отлично работает в среде VS 2010, но по-прежнему выдает какую-то ошибку времени выполнения, поскольку теперь ссылается на страницу ошибки, которую я поместил в файл web.config. Я покажу новый код ниже, покупайте, я не думаю, что это проблема с кодированием (это исходит от кого-то, кто явно не может это исправить!). Я чувствую, что это как-то связано с файлом web.config (просто догадка, если хотите). ПОЖАЛУЙСТА, поскольку я продолжаю пытаться получить сообщение об ошибке, кто-то ДОЛЖЕН сталкиваться с подобной проблемой раньше. Любые идеи приветствуются. Спасибо, Пэт.

//Using iFrame with Google Docs
        if (Session["Document"].ToString() != string.Empty)
        {
            string document = Session["Document"].ToString();
            string pdfPage = "http://docs.google.com/gview?url=" + document + "&embedded=true";
            pdfFrame.Attributes.Add("src", pdfPage);
        }
        else
        {
            ClientScriptManager script = Page.ClientScript;
            if (!script.IsClientScriptBlockRegistered(this.GetType(), "Alert"))
            {
                script.RegisterClientScriptBlock(this.GetType(), "Alert", "alert('Sorry, this document cannot be found. ')", true);
                return;
            }
        }


PDTUM

ОК, джентльмен; Для тех, кто следил за этой веткой и был достаточно любезен, чтобы указать мне в правильном направлении, я смог, наконец, выяснить, как вывести ошибку для чтения, и затем я, конечно, мог исправить ее, как только я узнал, в чем она. Итак ... теперь, хотя ошибки нет, страницы просто не работают. И это касается двух типов страниц. В программе VS я передаю строку в i-Frame, в которой указано местоположение и имя файла, через код. Я попробовал это двумя способами; один использует i-Frame напрямую, как в первом примере выше, а затем я попробовал использовать его со встроенными Документами Google, как во втором примере. Оба работают в программном обеспечении Dev Studio, ни одна из них не работает как отдельная веб-страница в сети. Кроме того, источник строки не имеет значения. Один из способов - получить его с помощью запроса Sql, другой - передать строку из поля со списком ... ни один из них не работает. Я возмущен этим проектом. Зачем? Еще раз прошу вашей помощи. Спасибо, Пэт.