ASP.NET MVC在新窗口中打开pdf文件

Tul*_*ips 8 pdf asp.net-mvc

我有一个MVC应用程序.当用户单击页面上的打开按钮时,我需要打开pdf文件.存储pdf的文件路径是从数据库中读取的,它是c:上的文件.如何在我的HTML代码中打开它?我有这个代码:

<a href="@Model.CertificatePath" target="_blank" class="button3">Open</a>
Run Code Online (Sandbox Code Playgroud)

但这不会打开我的文件.我需要做什么?我需要在某处指定它是一个pdf ??

Hac*_*ese 10

您需要提供一个动作的路径,该动作将接收文件名,解析完整路径,然后将磁盘上的文件从服务器流式传输到客户端.谢天谢地,网络中的客户端无法直接从服务器的文件系统中读取文件(除非......您建议远程用户计算机@Model.CertificatePath上的文件路径是什么?).

public ActionResult Download(string fileName)
{
   string path = Path.Combine(@"C:\path\to\files", fileName);

   return File(path, "application/pdf");

}
Run Code Online (Sandbox Code Playgroud)

更新

如果@Model.CertificatePath是客户端实际计算机上的位置,请尝试:

 <a href="file://@Model.CertificatePath" target="_blank" class="button3">Open</a>
Run Code Online (Sandbox Code Playgroud)

请注意,某些浏览器可能具有安全设置,因此无法打开本地文件.


Jay*_*thy 6

在您的视图中尝试这样

@Html.ActionLink("View", "ViewPDF", new { target = "_blank" })
Run Code Online (Sandbox Code Playgroud)

现在Link将在新窗口中打开.您可以在ViewPDF控制器方法中编写pdf字节