2012-11-21 37 views
1

我試圖在KendoUI窗口中顯示PDF流。Kendo窗口中的顯示流

當結果返回到KendoUI窗口,顯示PDF的原始數據。我開始了Fiddler,看看內容類型是否正確。 Fiddler確實顯示了正確的內容類型。

我嘗試了一些不同的交互。每次嘗試都會得到下面列出的相同結果。

這裏是從控制器片段:

public FileStreamResult DownloadV3() 
    { 
     //Create and populate a memorystream with the contents of the database table 
     MemoryStream mstream = GetPDFData(); 

     HttpContext.Response.AddHeader("content-disposition", "attachment; filename=form.pdf"); 

     return new FileStreamResult(mstream, "application/pdf"); 
    } 

這裏是什麼顯示在KendoUI窗口中的片段:

%PDF-1.5 5 0 obj <>>> endobj 6 0 obj <>stream 

下面是一段JavaScript代碼:

<script type="text/javascript"> 
$(document).ready(function() { 
    $("#view1").bind("click", winOpen); 
}); 
function winOpen() { 
    var id = '6CA88CA9-4F33-E211-84AC-B4A17689C6D9'; 
    var kendoWindow = $("#kjWindow").kendoWindow({ 
     title: "View File", 
     width: "750px", 
     height: "480px", 
     content: "/home/DownloadV3/" + id, 
     modal: true, 
     actions: ["Close", "Refresh", "Maximize"] 
    }); 
} 

個什麼我缺少/

感謝任何想法。

史蒂夫

+0

史蒂夫,這個問題有什麼不同,從http://stackoverflow.com/questions/13458150/how-to-populate-a-kendui-window?在那種情況下,你也問過使用PDF填充它。我將你重定向到我提出的解決方案,因爲我已經使用它並且工作。 – OnaBai

+0

Emiliano,在那篇文章中,我試圖弄清楚如何將內容加載到服務器端控件以外的KendoUI窗口中。我發現content:property允許我發送引用我的控制器併發回一個標記。我的最終目標是能夠發送一個流到KendoUI窗口(如上所示)。我是KendoUI世界的新手,所以任何想法都將不勝感激。 – Steve

+0

我不知道如何解決你的問題,但有兩個可能的線索:1. KendoUI文檔說容器只用於HTML,我沒有看看代碼(它是開源的),但做了一些快速測試jpeg,gifs,pdf ......並失敗,所以看起來它確實是真的。 2.大多數顯示PDF文檔的網頁使用嵌入/對象或使用特殊庫,查看http://stackoverflow.com/questions/4853898/display-pdf-within-web-browser,但不確定它是否適用於流。 – OnaBai

回答

0

我猜劍道窗口試圖打通一個Ajax請求的URL的內容,你不能檢索通過Ajax非html內容,可以嘗試在一個iframe窗口內,它指向的URL

+0

我添加了iframe = true的屬性。該頁面現在顯示PDF,但不在窗口內。我從瀏覽器中打開窗口。不幸的是,我需要將它顯示在kendoUI窗口中。 – Steve

+0

我認爲有一個選項可以讓kendo窗口顯示爲iframe,那是您做了什麼? – ryudice

+0

是的。看着最初的消息,我在modal:true後添加了'iframe:true'(減去引號)。 – Steve