我有一個博客類型網站(由3DBuzz視頻教程指導)和一個後端(用於管理目的)和一個前端。在後端和前端,用戶應該能夠下載文件。ASP.NET @ Url.Action不會生成用於下載文件的鏈接
兩者的前端和後端的操作:
public ActionResult Download(string filename)
{
var filepath = System.IO.Path.Combine(Server.MapPath("~/Content/Files/"), filename);
if (!System.IO.File.Exists(filepath))
return HttpNotFound();
return File(filepath, MimeMapping.GetMimeMapping(filepath), filename);
}
前端視圖(@ Url.Action是在兩個前端和後端相同的):
@foreach (var file in Model.Post.Files)
{
<a class="list-group-item file-download" href='@Url.Action("Download", "Posts", new { filename = file.FileName })' id="@file.FileName">
<span class="name">@file.FileName</span>
</a>
}
我沒有爲此操作配置任何路由。 的事情是,在後臺生成URL,我可以下載
<a class="file-link" href="/admin/Posts/Download?filename=putty.exe">putty.exe</a>
但是,當我想從前端下載...不產生鏈接中的文件:
<a class="list-group-item file-download" id="putty.exe">
<span class="name">putty.exe</span>
</a>
如果我創建的routeConfig路線:
routes.MapRoute("DownloadFile", "downloadFile/{filename}", new { controller = "Posts", action = "Download" }, namespaces);
生成的鏈接是:
<a class="list-group-item file-download" href="/downloadFile/putty.exe" id="putty.exe">
<span class="name">putty.exe</span>
</a>
但是當我點擊這個鏈接,我得到一個404未找到
感謝您的快速響應。我沒有任何運氣做了修改。 – user3211794