Angular 7无法下载带有c#.net核心api的文件

Angular 7无法下载带有c#.net核心api的文件,c#,angular,asp.net-core,filesaver.js,C#,Angular,Asp.net Core,Filesaver.js,我有一个角度应用程序,其中一个网格具有指向csv文件的超链接列。此csv位于网络驱动器上 当用户单击链接时,他们应该能够将文件保存到他们的机器上(假设所有用户都有访问权限) 我正在使用下载/保存文件 这是我的c#核心api控制器。对于测试,我有硬编码文件名c:\temp\test.csv。在实际应用中,Angular将使用所需的文件(包括完整路径)调用api 角度服务: public getFile(filePath:string): Observable<Blob>{ co

我有一个角度应用程序,其中一个网格具有指向csv文件的超链接列。此csv位于网络驱动器上

当用户单击链接时,他们应该能够将文件保存到他们的机器上(假设所有用户都有访问权限)

我正在使用下载/保存文件

这是我的c#核心api控制器。对于测试,我有硬编码文件名
c:\temp\test.csv
。在实际应用中,Angular将使用所需的文件(包括完整路径)调用api

角度服务:

public getFile(filePath:string): Observable<Blob>{
    console.log(filePath);
    let path = 'http://localhost:19090/api/testAPI/DownLoadFile/testfile.csv';
    let options = new RequestOptions({responseType: ResponseContentType.Blob });
    return this._http.get(path, {responseType: 'blob'})
    .pipe(
      catchError(this.handleError));

  }
此代码确实下载了csv文件,但显示为:

   {"version":{"major":1,"minor":1,"build":-1,"revision":-1,"majorRevision":-1,"minorRevision":-1},"content":{"headers":[{"key":"Content-Type","value":["text/csv"]},{"key":"Content-Disposition","value":["attachment; filename=\"c:\\temp\\blaze.csv\""]}]},"statusCode":200,"reasonPhrase":"OK","headers":[],"requestMessage":null,"isSuccessStatusCode":true}
我做错了什么?有什么建议吗

以下是我用来排除故障的一些链接:

更新:

多亏了这个链接-


我能解决我的问题。我更新了控制器代码,可以下载文件。

根据我的更新,我可以更新控制器,解决了我的问题。客户端代码没有更改

public async Task<IActionResult> DownloadFile(string filename)
        {
            try
            {
                string file = @"c:\temp\test.csv";

                var memory = new MemoryStream();
                using (var stream = new FileStream(file, FileMode.Open))
                {
                    await stream.CopyToAsync(memory);
                }

                memory.Position = 0;
                return File(memory, GetMimeType(file), filename);
            }
            catch (Exception e)
            {
                return BadRequest(e);
            }
        }
公共异步任务下载文件(字符串文件名)
{
尝试
{
字符串文件=@“c:\temp\test.csv”;
var memory=newmemoryStream();
使用(var stream=newfilestream(file,FileMode.Open))
{
等待流。CopyToAsync(内存);
}
记忆位置=0;
返回文件(内存、GetMimeType(文件)、文件名);
}
捕获(例外e)
{
返回请求(e);
}
}
   {"version":{"major":1,"minor":1,"build":-1,"revision":-1,"majorRevision":-1,"minorRevision":-1},"content":{"headers":[{"key":"Content-Type","value":["text/csv"]},{"key":"Content-Disposition","value":["attachment; filename=\"c:\\temp\\blaze.csv\""]}]},"statusCode":200,"reasonPhrase":"OK","headers":[],"requestMessage":null,"isSuccessStatusCode":true}
public async Task<IActionResult> DownloadFile(string filename)
        {
            try
            {
                string file = @"c:\temp\test.csv";

                var memory = new MemoryStream();
                using (var stream = new FileStream(file, FileMode.Open))
                {
                    await stream.CopyToAsync(memory);
                }

                memory.Position = 0;
                return File(memory, GetMimeType(file), filename);
            }
            catch (Exception e)
            {
                return BadRequest(e);
            }
        }