C# 试图在Chrome浏览器的新选项卡中打开pdf文件-未发生

C# 试图在Chrome浏览器的新选项卡中打开pdf文件-未发生,c#,asp.net-web-api,C#,Asp.net Web Api,我有一个Get方法,我希望在一个新的浏览器选项卡中打开一个pdf文件,但它没有发生-下面是代码 public void GetDoc(int id) { string fileInfo = "ID=[" + id + "] "; try { var file = this.DomainLogicUnitOfWork.UploadedDocumentManager.GetById(id); fileInfo = "FILENAME=[" +

我有一个Get方法,我希望在一个新的浏览器选项卡中打开一个pdf文件,但它没有发生-下面是代码

public void GetDoc(int id)
{
    string fileInfo = "ID=[" + id + "] ";
    try
    {
        var file = this.DomainLogicUnitOfWork.UploadedDocumentManager.GetById(id);
        fileInfo = "FILENAME=[" + file.FileName + "]";

        Response.Clear();
        Response.ContentType = file.FileContentType;
        Response.AppendHeader("content-disposition", "attachment; filename=" + file.FileName);
        Response.OutputStream.Write(file.DocumentImage, 0, file.DocumentImage.Length);
        Response.Output.Flush();
        Response.End();
    }
    catch (Exception ex)
    {
        LogHandler.LogError(4617, "Error Downloading Document " + fileInfo, ex);
        throw ex;
    }
}
我的url打开正确:当点击浏览器地址的开头时,它会给出一个警告,还有一件事是Word和其他文档正在下载,这意味着它们工作正常,但问题只是PDF文件。任何建议或意见—
谢谢各位朋友。

用双引号括起来解决了如下问题:
Response.AppendHeader(“内容处置”,$“附件;文件名=\“{file.filename}\”)

文件内容类型是否正确?另外,您使用的是哪个版本的.Net?有比这更简单的方法返回文件。响应从何而来?文件内容类型是application/pdf格式-正确吗?如果我添加这一行-它工作正常-但是当用户下载文件时,我如何给出文件名-如果(File.FileContentType.ToLower()!=“application/pdf”)响应。AppendHeader(“内容处置”,“附件;文件名=”+文件名);,Response.AppendHeader是包含在双引号中的问题,解决了如下问题:Response.AppendHeader(“内容处置”,$“附件;文件名=\“{file.filename}\”);永远不要抛出ex其中
ex
是捕获的异常。您将丢失堆栈跟踪。相反,只要做
抛出