@ Url.Action从数据库下载文件

时间:2017-08-01 13:29:49

标签: c# asp.net-mvc razor

我有以下代码来下载文件。

<a href="@Url.Action("downloadAnnounceFile","Home")?file=@obj.AnnounceFileID" target="_blank">Download</a>

在IE中,它将打开一个新页面并从那里下载,对于Firefox / Chrome,它会提示用户输入文件类型。 obj.AnnounceFileID是数据库中的文件本身。它可能并不总是类型pdf。 obj.LinkFileName具有该文件的名称,但我不确定如何重新构造此行以使其正常工作。我尝试了以下但它没有用。任何帮助表示赞赏。

<a href="@Url.Action("downloadAnnounceFile","Home", new { filename = @obj.LinkFileName, file=@obj.AnnounceFileID })" target="_blank">Download</a>

1 个答案:

答案 0 :(得分:1)

在第二次尝试中删除@符号。您在帮助器中,不需要@符号来解析模型值。

<a href="@Url.Action("downloadAnnounceFile","Home", 
new { filename = obj.LinkFileName, file=obj.AnnounceFileID })" target="_blank">Download</a>

您尝试在第一次尝试时做太多工作(大部分手工构建URL)。让MVC框架尽可能使用@Url.Action()帮助程序和RouteValues重载生成链接。