我正在调用MVC ActionResult来生成.ZIP报告。此ActionResult使用[HttpPost]
进行修饰,并将FilePathResult.Controller.File
对象返回给客户端。
就其本身而言,.ZIP实现工作正常,但我现在需要发送第二个独立文件,该文件不能包含在第一个.ZIP中。
.ZIP文件由客户端浏览器始终下载。第二个文件是PDF,有条件地下载。
独立地,我的编码工作得很好,但由于我的第二个HTTP POST似乎取消了第一个,因此它们无法一起工作。
jQuery:
$('#btnDownloadReports li a').click(function (event) {
event.preventDefault;
$(this).parents("form")
.attr("method", "POST")
.attr("action", "/MyController/MyOutputZIP/?selectionId=" + $('#SelectionId').val())
.submit();
if ($(this).data('reporttype') == 'pdf') {
$(this).parents("form")
.attr("method", "POST")
.attr("action", "/MyController/MyOutputPDF/?selectionId=" + $('#SelectionId').val())
.submit();
}
return false;
}
我看到可能提供提示的SO post,但我不确定如何应用它。
在第一次HTTP POST完成后,有人能指出如何进行第二次HTTP POST触发吗?
答案 0 :(得分:2)
为什么不在服务器端移动逻辑,让它决定发送给你的文件数量和数量,而不是什么本质上是黑客攻击?考虑到客户端的任何内容都可能被恶意更改。
在服务器端,您有两种不同的选择:
答案 1 :(得分:0)
我前段时间做过类似的事情。我的解决方案是使用javascript打开一个新窗口以下载其他文件。
最终用户必须“批准”网站以打开新窗口,这应该只是一次......