如何将内存流调用到浏览器下载

How to call memorystream to browser download?

本文关键字:浏览器 下载 调用 内存      更新时间:2023-09-26

我有以下控制器操作:

   var fileName = "monthly_report.pdf"
    var document = new Document();
    //DO SOME STUFF WITH THE DOCUMENT
    MemoryStream stream = new MemoryStream();
    doc.Save(stream, SaveFormat.Pdf);
    byte[] bytes = stream.GetBuffer();
    Response.Clear();
    Response.ContentType = "application/pdf";
    Response.AddHeader("content-disposition", "attachment; filename="+fileName);
    Response.BinaryWrite(bytes);
    Response.End();

我想用参数日期调用上面的控制器操作,这样它就会返回一个可以在浏览器中下载的pdf文件。

虽然它已经在响应中返回,但它显示了很多不可读的迹象,我无法通过ajax调用下载文件来开始执行它(我知道现在不起作用)。

问题是:如何从javascript调用控制器操作,并将javascript var作为参数,而操作不是ajax调用?

非常简单!

用途:

window.open("http://url_of_your_pdf_built_in_function?vars=something&etc=something");

问候