C# 从MVC ASP.NET中的视图下载文件

C# 从MVC ASP.NET中的视图下载文件,c#,asp.net,asp.net-mvc,model-view-controller,C#,Asp.net,Asp.net Mvc,Model View Controller,这是我的视图代码,我正在使用ViewBag从控制器获取文件 <ul class="list-unstyled"> @foreach (var File in ViewBag.ProjectsFiles) { <li> <span class="text-secondary"> @File.FilesName <span class="btn-link text-secondary"

这是我的视图代码,我正在使用ViewBag从控制器获取文件

<ul class="list-unstyled">
  @foreach (var File in ViewBag.ProjectsFiles)
  {
  <li>
  <span class="text-secondary"> @File.FilesName <span class="btn-link text-secondary"><a  href="http://localhost:44360/Test/Index/DownloadFile?file=@File.FilesName" target="_blank" class="float-right"><i class="fas fa-download"></i></a></span></span>
  </li>
  }
  </ul>

但问题是当我点击文件时,它没有下载。任何提示?

您可以使用下面的代码,这将在调用控制器时返回文件。您可以在此链接上找到相关信息


您是否调试了它并在控制器中设置了断点?@FalcoAlexander not yetWarning:您正在设置一个断点。将.././WebApplication1.sln传递给DownloadFile函数,如果该文件存在,它将愉快地返回该文件。验证用户输入的此类字符。
public void DownloadFile(String file)
        {
            try
            {
                String filename = file;
                String filepath = Server.MapPath("~/Files/" + filename);

                Response.Clear();
                Response.ClearHeaders();
                Response.ClearContent();
                Response.AddHeader("Content-Disposition", "attachment; filename=" + filename);
                Response.Flush();

                Response.TransmitFile(filepath);
                Response.End();
                // HttpContext.ApplicationInstance.CompleteRequest();
                ViewBag.Message = "";
            }
            catch (Exception ex)
            {
                ViewBag.Message = ex.Message.ToString();
            }

        }
        public FileResult Download(String file)
    {
        String filepath = Server.MapPath("~/Files/" + file);
        byte[] fileBytes = System.IO.File.ReadAllBytes(filepath);
        return File(fileBytes, System.Net.Mime.MediaTypeNames.Application.Octet, file);
    }