我的jquery AJAX是::
$.ajax({
type:'POST',
url:'GetFile',
date:data,
success:function(response){
//How to use the responded file?
}
})
在服务器端我将File :: ::
返回public ActionResult GetFile()
{
ReportDocument rd = new ReportDocument();
Stream stream = rd.ExportToStream(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat);
stream.Seek(0, SeekOrigin.Begin);
return new FileStreamResult(stream, "application/pdf");
}
在这里,我将从服务器端返回文件,并将其显示在我的视图中。
意思是说,我只想将响应的文件附加到
<div id="FileContent"></div>
这是我认为的。
我能为此做些什么?
答案 0 :(得分:0)
您想在div中显示PDF。
尝试一下:
<div id="FileContent">
<object data="test.pdf" type="application/pdf" width="500" height="800">
</object>
</div>
在ajax调用成功时使用jquery在#FileContent div中设置<object>
的数据属性。
答案 1 :(得分:0)
这里有一个简单的解决方案。 而不是返回文件只需将流写入Response。
byte[] tempArrary = memoryStream.ToArray();
Response.BinaryWrite(tempArrary);
Response.ContentType = "application/pdf";
Response.End();
然后只返回一些Json结果而不是File。
为您的DIV添加iframe。
然后使用jquery将iframe的src设置为您的控制器。
$("#your_iframe").attr("src", "your_path");
如果你想使用object或Embed标签而不是iframe,那么你必须为object或embed创建元素并且做同样的事情