我有一个锚标记,如下所示:
<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。这不是我想要的。如何在没有屏幕选项卡/闪存的情况下获取文件下载行为,或者是否可以?
答案 0 :(得分:0)
尝试为响应设置Content-Disposition
和Content-Type
HTTP标头,即设置
Content-Disposition: attachment; filename=MyResource.txt
Content-Type: application/octet-stream
表示.txt
文件的响应。现在,即使在删除target="_blank"
后,也应该下载您的文件。