Blazor WebAssembly 从 api 下载文件

Lui*_*eno 7 blazor blazor-webassembly

我有一个 Blazor Web assembly ASP.NET Core 托管应用程序,在服务器上我有一个返回文件的控制器,在客户端上我希望有一个按钮,当用户单击它时下载文件,我怎样才能实现这?

这是我的控制器

[HttpGet("{reportName}")]
public FileResult GetReport(string reportName)
{
     var stream = _reportPrintRepository.Print(reportName);

     return File(stream, System.Net.Mime.MediaTypeNames.Application.Pdf, reportName + ".pdf");
}
Run Code Online (Sandbox Code Playgroud)

Hen*_*man 4

最简单的方法是让浏览器处理它:

<a class="btn btn-primary" href="@(Http.BaseAddress)YourController/Test1">download</a>
Run Code Online (Sandbox Code Playgroud)

您从注入 HttpClient 获取基地址,并确保该 URL 与您在控制器中配置的路由匹配。