使用 MVC Core 下载文件

Download File using MVC Core

我找不到使用 MVC Core 下载文件的参考。

我们有一个 exe 文件供会员从我们的网站下载。过去我们把

<a href=(file path)> Download < /a> 供我们的用户点击。我想按照

的方式在 MVC Core 中做一些等效的事情
<a href=@ViewData["DownloadLink"]> Download < /a>

用文件路径填充下载链接。

public class DownloadController : Controller
{
    [HttpGet]
    public IActionResult Index()
    {
        ViewData["DownloadLink"] = ($"~/Downloads/{V9.Version}.exe");
        return View();
    }
}

`

link <a href=@ViewData["DownloadLink"]> Download < /a> 获取正确的路径,但单击时仅在地址栏中呈现路径。有没有设置下载的简单方法link?

我不在可以尝试的地方,但是像这样的东西可以解决问题吗?

<a href="<%= Url.Content('~/Downloads/{ V9.Version}.exe') %>"> Download </a>

我使用了@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

的说法也是正确的