如何显示stream返回的pdf(在JsonResult中)?

时间:2012-02-08 18:44:50

标签: c# jquery asp.net-mvc json pdf

我有一个pdf,我通过我的GetTestReport操作在json结果中通过流返回:

return this.Json(pdfInBytes);

在我看来:

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

如何在整个页面或特定div中显示pdf?

2 个答案:

答案 0 :(得分:3)

PDF不能嵌入到文档中,它本身就是一个文档,你不能把它放在JSON结果中,你将把它的URL放在JSON中。

然后您仍然可以将其放在iFrame中(它将是源src)。或者您window.open('you_pdf_url.pdf');将其显示在新标签中。

答案 1 :(得分:0)

Nabab是正确的,您无法将PDF转换为JSON。

你的动作'GetTestReport'应该使用FileStreamResult返回pdf本身:

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

您没有指定控制器的名称,因此我们假设它被称为“主页”。这意味着如果您浏览到/ Home / GetTestReport,您的pdf将被提供给客户端并显示在浏览器中。

那个网址就是你所需要的!您可以在ViewModel中使用它,或使用JSON将其发送到浏览器。