我找不到使用MVC Core下载文件的参考。
我们有一个单独的exe文件供会员从我们的网站下载。过去我们已经把
<a href=(file path)> Download < /a>
供我们的用户点击。我想在MVC Core中按照
<a href=@ViewData["DownloadLink"]> Download < /a>
使用文件路径填充DownloadLink。
public class DownloadController : Controller
{
[HttpGet]
public IActionResult Index()
{
ViewData["DownloadLink"] = ($"~/Downloads/{V9.Version}.exe");
return View();
}
}
`
链接<a href=@ViewData["DownloadLink"]> Download < /a>
获取正确的路径,但点击后只会在地址栏中显示路径。有没有简单的方法来设置下载链接?
答案 0 :(得分:38)
我使用@Tieson T发布的this回答来提出这个解决方案
public FileResult Download()
{
var fileName = $"{V9.Version}.exe";
var filepath = $"Downloads/{fileName}";
byte[] fileBytes = System.IO.File.ReadAllBytes(filepath);
return File(fileBytes, "application/x-msdownload", fileName);
}
视图现在是
<a asp-action="Download" asp->
Download
@Ageonix对于不要求〜转到wwwroot也是正确的
答案 1 :(得分:1)
我不是我可以尝试的地方,但是这样的事情可以做到吗?
<a href="<%= Url.Content('~/Downloads/{ V9.Version}.exe') %>"> Download </a>