Ajax 到控制器并在 IFrame 中返回 PDF 文件

问题描述 投票:0回答:0

我有一个使用 Ajax 执行 onclick 事件的函数。它调用一个控制器,在其中将字节转换为 pdf 并在 iFrame 中返回 pdf 文件,但是当显示 PDF 时它是空的。我想知道会发生什么?

<div id="DisplayPDF"></div>

$(document).ready(function () {
    $('input').on('click', function () {            
        $.ajax({
            url: '/Home/GetPDF',
            type: 'POST',
            data: { id: '@Model.Id' }, //
            success: function (response) {
                $("#DisplayPDF").html(
                    $('<iframe>', {
                        src: this.href,
                        width: '600px',
                        height: "800px"
                    })
                );
            }
        });
    });        
});

返回 PDF 文件的控制器

public async Task<ActionResult> GetPdf(Guid id)
{
    var vm = new ViewModels.Home.AttachmentViewModel();
    var result = vm.GetServiceAttachment(id));

    //Function to get the file information from DB .
    
    byte[] file;
    foreach (var attachment in result)
    {
        file = attachment.File;
        byte[] byteArray = file;
        return new FileContentResult(byteArray, "application/pdf");
    }
    return null;
}

这就是我现在的结果

javascript asp.net ajax asp.net-mvc iframe
© www.soinside.com 2019 - 2024. All rights reserved.