Как показать PDF, возвращенный потоком (в JsonResult)? - PullRequest
1 голос
/ 08 февраля 2012

У меня есть PDF-файл, который я вернул потоком в результате json с помощью моего действия GetTestReport:

return this.Json(pdfInBytes);

И на мой взгляд:

$.post('@Url.Action("GetTestReport", "Reports")', function(data) {
    // What have i put here?
});

Как мне показать pdf на всей странице или в определенном div?

Ответы [ 2 ]

3 голосов
/ 08 февраля 2012

PDF не может быть встроен в документ, это сам документ, и вы не можете поместить его в результат JSON, вы поместите его URL в JSON.

Тогда вы все равно можете поместить его в iFrame (это будет источник src).Или вы делаете window.open('you_pdf_url.pdf');, чтобы показать его на новой вкладке.

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

Набаб правильно, вы не можете конвертировать PDF в JSON.

Ваше действие 'GetTestReport' должно возвращать сам PDF с использованием FileStreamResult:

return new FileStreamResult(pdfMemoryStream, "application/pdf"); 

Вы не указываете имя вашего контроллера, поэтому давайте предположим, что он называется «home». Это означает, что если вы перейдете в / Home / GetTestReport, ваш pdf будет передан клиенту и показан в браузере.

Этот URL-адрес - то, что вам нужно! Вы можете использовать его в ViewModel или отправить в браузер с помощью JSON.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...