获取完整的 URL 媒体文件

Get full URL to media file

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

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

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

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

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

超级简单。只需将 /download 附加到 URL.

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

为什么要物理 URL 文件?这不是必需的,在大多数情况下,它们存储在例如Azure Blob 存储。

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

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

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