2013-02-15 39 views
0

我有一個桌面/移動web應用程序,需要在目標設備上顯示pdf流。我現在使用jquery對話框在桌面上工作。對於移動壽...我的HTML視圖頁面有以下鏈接:如何使用jquery mobile asp.net mvc 4下載並顯示pdf內存流數據

<a href="@Url.Action("PdfView", new { id = @paystub.PayStub_ID})">View PDF</a> 

這正確帶我到控制器動作:

public ActionResult PdfView(string id = "") 
    { 
     PayStubDataEntity ps = PayStubAccess.GetPayStubByID(new Guid(id), new Guid(Session["Session_Application_UserID"].ToString())); 
     WebHelper.SetHeadersForDownload(System.Web.HttpContext.Current.Response, "application/pdf", "PayStub.pdf", false); 
     MemoryStream pdfMemoryStream = SendPayStubToBrowserAsPdf(ps); 
     //WebHelper.SendFile(System.Web.HttpContext.Current.Response, "application/pdf", "PayStub.pdf", false, pdfMemoryStream); 
     return File(pdfMemoryStream, "application/pdf"); 
    } 

卻遲遲沒有顯示在我的iPhone模擬器(電李子)。沒有錯誤消息。我不確定輸出的s/b在哪裏或如何查看?任何想法將不勝感激。

+0

在android模擬器上試過了嗎? – siri 2013-04-18 15:14:18

回答

0

我們對android手機也有同樣的問題,可能會出現兩個問題。如果網站使用SSL並且您所在的手機不接受它作爲有效的SSL,它會說在經理中下載pdf,但它永遠不會完成下載。 第二個問題是您要發送到手機的文件需要命名才能正確下載到手機中。例如:返回文件(pdfMemoryStream,「application/pdf」,fileDownloadName:「PayStub.pdf」);

我建議使用Google Chrome進行手機模擬。當您更改設置時,它的行爲與手機類似,您可以輕鬆進行調試。 例如,當我將Google Chrome設置爲手機用戶代理Android 4.0.2時,它將下載PDF,而不是在Web瀏覽器中顯示。當它這樣做時,我知道它在本地工作。它也有iPhone模擬。