Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 尝试在ASP.NET MVC中显示使用iTextSharp生成的PDF文件_C#_Ajax_Asp.net Mvc_Pdf_Itextsharp - Fatal编程技术网

C# 尝试在ASP.NET MVC中显示使用iTextSharp生成的PDF文件

C# 尝试在ASP.NET MVC中显示使用iTextSharp生成的PDF文件,c#,ajax,asp.net-mvc,pdf,itextsharp,C#,Ajax,Asp.net Mvc,Pdf,Itextsharp,我有一个ajax方法 function downloadPDF() { var elem = $('#actionPlanDetails'); elem.find("button").hide(); elem.find("iframe").hide(); elem.find("input[type='button']").hide(); html2canvas(elem[0], { onr

我有一个ajax方法

 function downloadPDF() {
        var elem = $('#actionPlanDetails');
        elem.find("button").hide();
        elem.find("iframe").hide();
        elem.find("input[type='button']").hide();

        html2canvas(elem[0], {
            onrendered: function (canvas) {
                var result = canvas.toDataURL();
                var base64 = result.split(',')[1];
                elem.find("button").show();
                elem.find("iframe").show();
                elem.find("input[type='button']").show();
                $.ajax({
                    beforeSend: function () {
                        $.blockUI({ message: $('#waitMessage') });
                    },
                    url: "/ActionPlan/UploadPDF",
                    type: 'POST',
                    data: { pdfStr: base64 },
                    dataType: 'image/jpeg',
                    success: function (result) {
                        console.log('PDF');
                    },
                    complete: function () {
                        $.unblockUI();
                    }
                });
            }
        });
    }
…它使用html2canvas.js获取屏幕图像并将字节发送到MVC操作方法

[HttpPost]
        public ActionResult UploadPDF(string pdfStr)
        {
            byte[] pdf = Convert.FromBase64String(pdfStr);
            int fileLength = pdf.Length;

            Document doc = new Document();
            string pdfpath = Server.MapPath("../Content/pdfs");
            try
            {
                PdfWriter.GetInstance(doc, new FileStream(pdfpath + "/Plan.pdf", FileMode.Create));
                doc.Open();
                Image planImg = Image.GetInstance(pdf);
                doc.Add(planImg);
            }
            catch (Exception ex)
            {

            }
            finally
            {
                //doc.Close();
            }
            return File("~/Content/pdfs/Plan.pdf", "application/pdf");
        }
…它将传递的字符串转换为字节数组,并使用iTextSharp创建文档,将其附加到PDF文档并将其写入内容子目录

问题在于,在编写PDF文件后,我还希望它在操作返回时弹出窗口,就像我经常看到的Controller.file()方法那样。但什么也没发生。PDF会很好地保存在内容文件夹中,但在操作返回时不会弹出任何内容


查看fiddler中的was响应,我只看到了一堆字节,而不是PDF,因此我想我可能遗漏了一些配置/元数据,但我在文档中找不到关于这种情况的更多信息。

您尝试过这个答案的建议吗?事实上非常像那样,是的。我将在稍后发布我提出的解决方案