从我的MVC控制器的URL中打开新标签页中的PDF [编辑]

时间:2016-12-30 22:26:25

标签: pdf asp.net-mvc-5 binarywriter

在我看来,我生成一个链接,其中包含传递给控制器​​的用户名,帐号和日期:

   @Html.ActionLink(AccountGroup.AcctNum + " " + AccountGroup.DocDate.ToShortDateString(), "GetIndividualStatement", "Statements",  new { statementDate = @AccountGroup.DocDate.ToShortDateString(), Userid = @ViewBag.UserID, acctNumber = AccountGroup.AcctNum.ToString() }, new { @class = "form-control, col-sm-6,  medwidth" , target = "_blank" })

我也尝试过使用AJAX链接:

 @Ajax.ActionLink(AccountGroup.AcctNum + " " + AccountGroup.DocDate.ToShortDateString(), "GetIndividualStatement", "Statements", new { statementDate = @AccountGroup.DocDate.ToShortDateString(), Userid = @ViewBag.UserID, acctNumber = AccountGroup.AcctNum.ToString() }, new AjaxOptions { HttpMethod ="POST", UpdateTargetId = "detailsDiv" }, new { @class = "form-control, col-sm-6,  medwidth" })

然后我的控制器获取该信息为PDF生成加密的URL(我必须在我的控制器中现场创建这个,所以我不能在我的视图中有一个链接供用户点击(这太简单了) !)。我需要打开返回PDF的URL。我需要接受并在新标签中打开PDF(同时保持原始标签打开)。这是我最近的尝试,在同一个窗口打开,但是如何在新标签页中打开?

    WebClient client = new WebClient();
    Byte[] buffer = client.DownloadData(path);
    if (buffer != null)
    {
        Response.ContentType = "application/pdf";
        Response.AddHeader("content-length", buffer.Length.ToString());
        Response.BinaryWrite(buffer);
    }

感谢大家!

1 个答案:

答案 0 :(得分:1)

您在最终HTML中要查找的内容如下所示,其中链接的目标属性设置为“_blank”,

<a href="the_pdf_link/" target="_blank">Open PDF</a> 

做到这一点,你就会得到你想要的行为。

如果问题出现在服务器端代码中,那么当您解决问题时,请编辑您的问题以包含此修复程序,以便从未来查看的其他任何人都能看到故事的两个方面。