在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而不是打开它?
答案 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