我有一个Asp.Net MVC项目,在我的视图中有这个篇幅:
$.ajax({
beforeSend: function () {
LoadStart();
},
complete: function () {
LoadStop();
},
//async: false,
contentType: 'application/json, charset=utf-8',
dataType: 'json',
type: 'POST',
url: '@Url.Action("MyAction", "MyController")',
data: JSON.stringify(
{
Param1: 1,
Param2: 2
}),
success: function (data) {
$("#pdf-content").show();
// Here, fill DIV (pdf-content) with PDF.
},
fail: function () {
alert("Fail");
}
});
在MyAction
,我有:
[HttpPost]
public ActionResult MyAction(int Param1, int Param2)
{
// Code ...
MemoryStream stream = new MemoryStream();
outPdf.Save(stream);
byte[] fileContents = stream.ToArray();
return File(fileContents, "application/pdf", "myFile.pdf");
}
如何在DIV中显示PDF,甚至直接下载而不显示?
答案 0 :(得分:1)
在这种情况下,最好的解决方案是: 在POST方法中,使用唯一名称(例如GUID)在服务器上保存文件,并将此guid返回给客户端。
然后创建get请求,通过guid查找文件并将文件返回给客户端并从服务器中删除。
创建服务非常好,这将删除所有旧文件。