当您单击网站上的链接以打开pdf文件时,我需要。当我放置指向实际文件的链接并单击该链接时,它将打开文件本身,以便您查看。当您创建一个读取文件ID并发送文件的控制器时,它也可以正常工作。问题是客户希望直接打开文件(例如链接到实际文件方法),而不仅仅是自动下载(例如控制器方法)
控制器示例(下载文件)href =“ https://mywebsite.com/Download/DownloadFile?downloadId=17”链接示例(直接打开文件)href =“ https://mywebsite.com/pdf/mypdf.pdf”
我已经在多种浏览器和多台计算机上尝试过。结果总是一样的。我将文件内容类型设置为application / pdf。
任何帮助将不胜感激。
如果控制器方法生成文档作为响应,则可以使用Content-Disposition
header向浏览器指定如何打开它。我认为您想要的是包含这些标头:
Content-Disposition
这在大多数浏览器中都会出现。
您可以设置静态文件的路由。
步骤:
在RouteConfig.cs中启用静态文件的路由
Content-Disposition: inline; filenname=mypdf.pdf
Content-Type: application/pdf
为您的RouteConfig.cs的路径添加路由
routes.RouteExistingFiles = true;
在Web.config中添加以下条目
routes.MapRoute(
name: "staticFileRoute",
url: "pdf/{*file}",
defaults: new { controller = "Download", action = "DownloadFile" }
);
将操作“ DownloadFile”添加到“下载”控制器,如下所示:
<system.webServer>
<handlers>
<add name="MyCustomUrlHandler2" path="pdf/*" verb="GET" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
</handlers>
</system.webServer>