C# 从MVC ASP.NET中的视图下载文件
这是我的视图代码,我正在使用ViewBag从控制器获取文件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"
<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);
}