文件下载链接导致屏幕闪烁

时间:2014-04-11 14:02:37

标签: html asp.net-mvc

我有一个锚标记,如下所示:

<a href="/resource/download/3" target="_blank">MyResource.txt</a>

这会调用MVC控制器来返回文件:

    public FileResult Download(int id)
    {
        var resource = _context.Find<Resource>(id);
        var filePath = Path.Combine(Request.MapPath("~"), resource.FilePath);

        var fileBytes = System.IO.File.ReadAllBytes(filePath);
        return File(fileBytes, System.Net.Mime.MediaTypeNames.Application.Octet, resource.FileName);
    }

这一切都很棒。我遇到的问题是在下载文件之前屏幕会非常短暂地闪烁到空白标签。我确定这是由于target =“_ blank”属性。但是,如果我删除该属性而不是我的主页面URL更改为/ resource / download / 3。这不是我想要的。如何在没有屏幕选项卡/闪存的情况下获取文件下载行为,或者是否可以?

1 个答案:

答案 0 :(得分:0)

尝试为响应设置Content-DispositionContent-Type HTTP标头,即设置

Content-Disposition: attachment; filename=MyResource.txt
Content-Type: application/octet-stream

表示.txt文件的响应。现在,即使在删除target="_blank"后,也应该下载您的文件。