【发布时间】:2021-06-02 08:19:30
【问题描述】:
谷歌浏览器有一个非常简洁的功能,如果下载时页面正确提供,它会在新选项卡中打开 .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'。 我在 google 和 StackOverflow 上进行了搜索,但没有找到任何适用于 ASP.NET Core 的更新。
它仍然只是定期下载文件,但不会在新选项卡中显示 PDF。 我的代码缺少什么?
【问题讨论】:
-
如果删除 _target 属性会发生什么?这会像你想要的那样在当前选项卡中打开 PDF 吗?
-
尝试使用 FileResult 而不是 IActionResult 作为返回类型
-
@mason 我之前没有 _target 属性,它只会像其他文件一样定期下载文件。
-
@beggarboy 我认为应该是 target="_blank" 而不是 _target="blank
标签: google-chrome asp.net-core