我有我的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