【发布时间】:2016-03-19 01:57:53
【问题描述】:
我有一个简单的操作,可以让我下载一个请求的文件。
如果我使用浏览器的上下文菜单调用该操作(参见下面的屏幕截图),这将非常有效,但是当我直接单击链接时,我会收到以下错误:HTTP Error 404.0 - Not Found - The resource you are查找已被删除、名称已更改或暂时不可用。
使用浏览器的上下文菜单:
下载文件的控制器动作:
public ActionResult Download(string id)
{
string username = User.Identity.Name;
Client client = db.Client.SingleOrDefault(x => x.Email == username);
string filePath = Server.MapPath("~/Client-Documents/" + client.FolderName + "/" + id);
return File(filePath, "text/plain", id);
}
查看生成文件链接的sn-p:
@for (int i = 0; i < Model.Count(); i++)
{
<tr>
<td>@(i + 1)</td>
<td>@Model[i].Name</td>
<td>
<a href="@Url.Action("Download", "Client", new { @area = "Administration", id = Model[i].Location })">Download</a>
</td>
</tr>
}
【问题讨论】:
-
虽然听起来很奇怪,但您能否发布一些示例查看代码,您是如何生成链接的?
-
@SivaGopal 更新!为什么,在某些情况下,文件的生成方式可能存在问题?
-
@DarinDimitrov 不幸的是,我得到了同样的结果。
-
什么是实际生成的 URL 示例,您希望它是什么?
-
@mason 感谢您为我指出正确的方向我忘记了我将文件的全名作为 id 传递,这意味着文件也有扩展名,这是一个很大的 NO NO!
标签: c# asp.net-mvc