获取媒体文件的完整URL

Ayo*_*ina 0 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>
Run Code Online (Sandbox Code Playgroud)

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

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

Joh*_*son 6

超级容易.只需附加/download到URL即可.

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

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

  • 这是Episerver特有的.它将设置正确的http标头.您还可以在锚点上设置下载属性,请参阅https://www.w3schools.com/TAGS/att_a_download.asp (3认同)