获取媒体文件的完整URL

时间:2018-04-24 09:13:41

标签: c# asp.net-mvc episerver

在Episerver后台我有一个内容参考,其中有一个PDF文件作为其数据。

在前端(Razor视图)我使用此代码输出PDF

<a href="@Url.ContentUrl(Model.PdfMedia)" class="btn btn-primary" tabindex="-1">@Model.CurrentBlock.DownloadPdfText</a>

当用户点击此链接时,PDF会在浏览器中打开,我希望浏览器下载PDF而不是在浏览器中打开它。

我注意到的一件事是生成的URL是/ globalassets / PDF-File-Name ........但是这个URL不是PDF文件实际位置的URL,我怎么能得到这个网址是什么?如何强制浏览器下载PDF而不是打开它?

2 个答案:

答案 0 :(得分:6)

超级简单。只需将/download附加到网址即可。

<a href="@Url.ContentUrl(Model.PdfMedia)/download" class="btn btn-primary" tabindex="-1">@Model.CurrentBlock.DownloadPdfText</a>

为什么要将物理URL放到文件中?这不应该是必要的,并且在大多数情况下它们存储在例如Azure Blob存储。

答案 1 :(得分:2)

强制链接在浏览器中触发下载的另一种方法是添加download属性,如:

<a href="@Url.ContentUrl(Model.PdfMedia)" download>

这不是Episerver特有的。更多信息:https://www.w3schools.com/tags/att_a_download.asp