C# 在新浏览器选项卡中查看PDF文档

C# 在新浏览器选项卡中查看PDF文档,c#,jquery,asp.net-mvc,pdf,C#,Jquery,Asp.net Mvc,Pdf,我正在尝试使用Asp.net mvc控制器在新选项卡中打开pdf。 它在“新”选项卡中正确打开,但未显示文档名称 这是我的密码 public ActionResult ViewDocument() { byte[] docFileArr=...... var cntdn = new System.Net.Mime.ContentDisposition { FileName = DocumentName,

我正在尝试使用Asp.net mvc控制器在新选项卡中打开pdf。 它在“新”选项卡中正确打开,但未显示文档名称 这是我的密码

 public ActionResult ViewDocument()
{
 byte[] docFileArr=......
 var cntdn = new System.Net.Mime.ContentDisposition
                {
                    FileName = DocumentName,
                    Inline = true,
                };
                Response.AppendHeader("Content-Disposition", cntdn .ToString());
                return File(docFileArr, "application/pdf");

}
文档在新窗口中正确打开,但它只显示控制器名称,而不显示文档名称。请看附件

提前谢谢你的帮助
Web浏览器实际上使用PDF文件中包含的元数据来显示标题。这样,您的文件将具有相同的标题,而不考虑其加载方式(从.NET应用程序、下载后从桌面等)


请参阅这篇关于如何使用Acrobat查看和编辑Adobe元数据的文章:

实现这一点的一种方法是在PDF元数据中设置标题(在创建PDF期间或在下载开始之前对其进行操作)。这已包含在已给出的SO问题中

另一种方法是打开一个新选项卡,加载由ASP.NET MVC视图生成的自己的HTML页面,该页面本身嵌入了由ViewDocument操作提供的PDF文件(更合适的名称是DownloadDocument)

HTML页面的HTML标题中会有一个标题,由浏览器显示。例如,视图可能看起来像(仅给出想法):

@{
布局=空;
}
@模型.标题
.pdfobject容器{
高度:96vh;
宽度:99vw;
}                   
PDFObject.embed(“@Model.DownloadUrl”,“#pdf”);

它使用该库使PDF嵌入更容易,更不容易出错。

您可以使用中的方法或使用Adobe的其他元数据手动执行此操作:。
@{
    Layout = null;        
}
<!DOCTYPE html>
<html height="100%">
<head>
    <meta charset="utf-8" />
    <title>@Model.Caption</title>
    <script src="/js/pdfobject.js"></script>
    <style>
        .pdfobject-container {
            height: 96vh;
            width: 99vw;
        }                   
    </style>
</head>
   <body height="100%">

    <div id="pdf" height="100%"></div>
    <script>PDFObject.embed("@Model.DownloadUrl", "#pdf");</script>
  </body>
</html>