我有我的JSON结果返回的流通过我的GetTestReport行动PDF:如何显示由流返回的pdf(在JsonResult中)?
return this.Json(pdfInBytes);
在我看来:
$.post('@Url.Action("GetTestReport", "Reports")', function(data) {
// What have i put here?
});
我怎样才能显示PDF在整个页面,或在特定的div?
我有我的JSON结果返回的流通过我的GetTestReport行动PDF:如何显示由流返回的pdf(在JsonResult中)?
return this.Json(pdfInBytes);
在我看来:
$.post('@Url.Action("GetTestReport", "Reports")', function(data) {
// What have i put here?
});
我怎样才能显示PDF在整个页面,或在特定的div?
PDF不能嵌入到文档中,它本身就是一个文档,并且您不能将其放入JSON结果中,您会将其URL放在JSON中。
然后,你仍然可以把它放在一个iFrame(它将是源src
)。或者你做window.open('you_pdf_url.pdf');
将它显示在一个新标签中。
但是有了这个,我必须在物理上创建文件的权利?我无法做到这一点,所以我必须创建一个流或以字节为单位转换为传递给浏览器,就像我们用txt文件做的那样,例如,但FileResult不是用JsonResult。那么,你说的是我们不能用JsonResult来做到这一点,只能用FileResult来做到这一点? – 2012-02-08 19:07:20
不,您仍然可以传递将动态创建它的URL。 – Nabab 2012-02-08 19:10:35
我的pdf不存在物理上,我有它的字节,所以,网址将指向哪里? – 2012-02-08 19:15:15
Nabab是正确的,您无法将PDF转换为JSON。
你的行动“GetTestReport”应该用FileStreamResult返回PDF本身:
return new FileStreamResult(pdfMemoryStream, "application/pdf");
你不指定控制器的名称,所以我们假设这就是所谓的“家”。这意味着如果您浏览到/ Home/GetTestReport,您的pdf将被提供给客户端并显示在浏览器中。
该网址是你需要的!您可以在ViewModel中使用它或使用JSON将其发送到浏览器。
看看这个[http://andreasgal.com/2011/06/15/pdf-js/](http://andreasgal.com/2011/06/15/pdf-js/) – 2012-02-08 18:47:21