谷歌浏览器有一个非常巧妙的功能,如果页面在下载时正确提供,它会在新标签中打开 .pdf 文件。
我想知道如何在 .NET Core 的最新版本中实现这一点?
我当前的配置如下:
后端:
[HttpGet("download")]
public IActionResult DownloadHelpFile()
{
string path = Path.Combine(_environment.WebRootPath, "files/dummy.pdf");
var net = new System.Net.WebClient();
var data = net.DownloadData(path);
var content = new MemoryStream(data);
var contentType = "application/pdf";
var fileName = "dummy.pdf";
return File(content, contentType, fileName);
}
前端:
<a asp-action="DownloadHelpFile" _target="blank">@CasesLocalizer["NeedHelpDownloadOurGuide"]</a>
我还把 _target='blank' 换成了 'new'。 我在谷歌和 StackOverflow 上搜索过,但没有找到任何适用于 ASP.NET Core 的更新。
它仍然只是定期下载文件,但不会在新选项卡中显示 PDF。 我的代码缺少什么?
答案 0 :(得分:2)
您需要返回 FileStreamResult
[HttpGet("download")]
public IActionResult DownloadHelpFile()
{
string path = Path.Combine(_environment.WebRootPath, "files/dummy.pdf");
var net = new System.Net.WebClient();
var data = net.DownloadData(path);
var content = new MemoryStream(data);
var contentType = "application/pdf";
var fileName = "dummy.pdf";
return FileStreamResult (content, contentType, fileName);
}
并使用 target="_blank" 而不是 _target="blank
<a asp-action="DownloadHelpFile" target="_blank">@CasesLocalizer["NeedHelpDownloadOurGuide"]</a>