客户端从C#/ ASP.NET页面的Javascript调用开始下载文件?

qui_id 发布于 2019-03-09 asp.net 最后更新 2019-03-09 14:36 2 浏览

我需要从JavaScript代码的ASP.NET页面启动文件下载。 什么是我最好的选择?是否有可能调用Web服务来做到这一点,或者以某种方式调用C#页面的常用事件处理程序? 请注意,我将检索大量的数据,数兆字节。

已邀请:

ueos

赞同来自:

您可以使用Javascript为要下载的文件创建iframe。看看这个答案:Starting file download with JavaScript

wiusto

赞同来自:

您可以使用隐藏的IFRAME元素并启动文件下载请求,这样可以让您感觉下载AJAX文件。 在下载文件时,您可以在客户端的表单中执行其他活动。 是的,您可以在此URL中调用webservice或aspx页面或http处理程序

function dowloadFileJS()  {
      // Create an IFRAME.
      var iframe = document.createElement("iframe");
// Point the IFRAME to GenerateFile
      iframe.src = "GenerateFile.aspx?yourQueryString=myQueryString";
// This makes the IFRAME invisible to the user.
      iframe.style.display = "none";
// Add the IFRAME to the page.  This will trigger a request to GenerateFile now.
      document.body.appendChild(iframe); 
    }