C# 在浏览器中显示下载进度

C# 在浏览器中显示下载进度,c#,html,asp.net,asp.net-core,C#,Html,Asp.net,Asp.net Core,我正在使用一个从DropBox下载PDF的功能,我使用ASP.net内核,一切都很好。唯一的问题是,当你点击下载链接时,它不会显示任何消息并下载文件。我想显示下载进度,就像我们从互联网上下载东西时通常发生的那样,我不希望出现任何对话框,只是想显示文件是在任何浏览器(如Chrome或IE)中正常下载的,然后有“在文件夹中显示”等选项,我需要添加什么 public async Task DownloadPdf() { DropboxClien

我正在使用一个从DropBox下载PDF的功能,我使用ASP.net内核,一切都很好。唯一的问题是,当你点击下载链接时,它不会显示任何消息并下载文件。我想显示下载进度,就像我们从互联网上下载东西时通常发生的那样,我不希望出现任何对话框,只是想显示文件是在任何浏览器(如Chrome或IE)中正常下载的,然后有“在文件夹中显示”等选项,我需要添加什么

 public async Task DownloadPdf()
            {
                DropboxClient client2 = new DropboxClient("cU5M-a4exaAAAAAAAAABDVZsKdpPteNmwHslOeFEo-HByuOr4v4ONvXoAMCFyOXH");
                string folder = "MyFolder";
                string file = "Test PDF.pdf";
                using (var response = await client2.Files.DownloadAsync("/" + folder + "/" + file))
                {
                    using (var fileStream = System.IO.File.Create(@"C:\Users\User\Downloads\Test.pdf"))
                    {
                        (await response.GetContentAsStreamAsync()).CopyTo(fileStream);                    
                    }
                }
            }

我有一个asp.net核心项目,其中包含一个返回文件的API:

[HttpGet("{id}")]
public IActionResult Get(int id) {
  byte[] fileContent = READ_YOUR_FILE();
  FileContentResult result = new FileContentResult(fileContent, "application/octet-stream") {
    FileDownloadName = id.ToString()
  };
  return result;
}

如果我在浏览器中访问此API的URL(myapp/API/mycontroller/id),则可以看到文件正在下载。

我有一个asp.net核心项目,其中包含一个返回文件的API:

[HttpGet("{id}")]
public IActionResult Get(int id) {
  byte[] fileContent = READ_YOUR_FILE();
  FileContentResult result = new FileContentResult(fileContent, "application/octet-stream") {
    FileDownloadName = id.ToString()
  };
  return result;
}

如果我在浏览器中访问此API的URL(myapp/API/mycontroller/id),那么我可以看到文件正在下载。

请参见此处(内容处置标题)。@Evk唯一的问题是我使用的是ASP.net Core,我们在Core中找不到命名空间系统。Wen,我如何在Core中执行此操作?我不熟悉ASP.net Core,但我认为谷歌不难知道如何在那里添加响应头(这是一个非常基本的操作)。如果system.web不是标准的/@SimonPrice,您是否尝试过将其作为引用导入?我尝试过,但我遇到了一个错误:N
et core在此版本中仅支持引用.net framework程序集。要引用其他程序集,它们需要包含在NuGet包中并引用该包
。我试图在这里找到它(内容处置头)。@Evk唯一的问题是我使用的是ASP.net Core,我们找不到名称空间系统。Wen in Core,我怎么能在Core中做到这一点?我不熟悉ASP.net Core,但我认为谷歌不难知道如何在那里添加响应头(这是非常基本的操作)。如果system.web不是标准的/@SimonPrice,您是否尝试过将其作为引用导入?我尝试过,但遇到以下错误:N
et core仅支持在此版本中引用.net framework程序集。要引用其他程序集,它们需要包含在NuGet包中并引用该包
。我在想办法