0

我有一个桌面/移动网络应用程序,需要在目标设备上显示 pdf 流。我现在使用 jquery 对话框在桌面上工作。对于移动端...我的 html 查看页面有以下链接:

    <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 去哪里或如何查看它?任何想法将不胜感激。

4

1 回答 1

0

我们在安卓手机上也有同样的问题,可能有两个问题正在发生。如果网站使用 ssl 并且您所在的手机不接受它作为有效的 ssl,它会在管理器中显示正在下载 pdf,但它永远不会完成下载。第二个问题是您发送到手机的文件需要命名才能正确下载到手机。

例如:return File(pdfMemoryStream, "application/pdf", fileDownloadName:"PayStub.pdf");

我建议使用谷歌浏览器进行手机模拟。当您更改设置时,它的行为将与手机相似,您可以轻松调试。例如,当我将 Google Chrome 设置为手机用户代理 Android 4.0.2 时,它将下载 pdf,而不是在网络浏览器中显示。当它这样做时,我知道它在本地工作。它还具有 iPhone 仿真。

于 2013-11-14T18:19:23.883 回答