2017-08-01 75 views
-1

我有以下一段代碼來下載文件。@ Url.Action從數據庫中下載文件

<a href="@Url.Action("downloadAnnounceFile","Home")[email protected]" target="_blank">Download</a> 

在IE瀏覽器會打開一個新頁面,並從那裏可以下載,適用於Firefox/Chrome瀏覽器會提示該文件類型的用戶。 obj.AnnounceFileID是數據庫中的文件本身。它可能並不總是輸入pdf。 obj.LinkFileName具有文件的名稱,但我不知道如何重構此行以正常工作。我嘗試了下面,但它沒有奏效。任何幫助表示讚賞。

<a href="@Url.Action("downloadAnnounceFile","Home", new { filename = @obj.LinkFileName, [email protected] })" target="_blank">Download</a> 
+1

「沒有工作」* how *?這究竟是以什麼方式失敗? – David

+0

預期的行爲是什麼? –

+0

你不能把文件名作爲URL中的查詢字符串? –

回答

1

在第二次嘗試中刪除@符號。您在助手內,您不需要@符號來解析模型值。

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

您嘗試在第一次嘗試中做了太多工作(大多數情況下手工構建URL)。讓MVC框架在可能的情況下通過使用@Url.Action()幫助器和RouteValues過載來生成鏈接。