通过js发送数据并从动作控制器接收PDF
本文关键字:控制器 PDF js 数据 通过 | 更新日期: 2023-09-27 18:18:04
我使用javascript从我的视图发送两个字符串到控制器。控制器接收该字符串,并根据它们的值返回pdf页面。我使用这种方法动态创建pdf。一切都很好,当我看firebug的时候,我得到了pdf,但我不知道该怎么做,javascript成功操作,如何在视图上显示这个pdf。
my js is
function GetDetails2(xx, xxx) {
$.ajax({
url: ('/PdfReport/MyreportDemo'),
type: 'POST',
contentType: 'application/json',
data: JSON.stringify({ dataOne: xx, dataTwo: xxx }),
success: function (result) {
//alert("ok");
},
error: function () {
alert("error");
}
});
}
JavaScript不太擅长处理二进制数据。直接处理这个问题的唯一方法是将数据编码为base-64编码的data-uri。通过<iframe>
发布JSON也行不通,因为你需要一个<form>
。
一个可能的解决方案是更改后端以接受uri参数:
/PdfReport/MyreportDemo?dataOne=xx&dataTwo=xx
那么你可以使用<iframe>
:
<iframe name="hiddenframe" style="display: none;" src="about:blank"></iframe>
<form id="reportDemoForm" method="post" action="/PdfReport/MyreportDemo" target="hiddenframe">
<input id="dataOne" name="dataOne" type="hidden" value=""/>
<input id="dataTwo" name="dataTwo" type="hidden" value=""/>
</form>
$('#dataOne').val('xx');
$('#dataTwo').val('xx');
$('#reportDemoForm').submit();
假设您想要下载该文件。如果您想在页面上显示它,您可以显示<iframe>
,并适当调整其大小。