【问题标题】:Open a PDF in new tab from URL from my MVC Controller [EDITED]从我的 MVC 控制器的 URL 在新选项卡中打开 PDF [已编辑]
【发布时间】:2016-12-30 22:26:25
【问题描述】:

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

   @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);
    }

谢谢大家!

【问题讨论】:

  • 使用目标属性建立链接,例如打开 PDF
  • 你能用代码告诉我吗?我不确定我会把它放在哪里(记住,它会 必须进入控制器代码?上面的代码在同一页面中打开......我需要弄清楚如何打开它在新标签中。
  • 好的 - 您问题中的代码已经针对 _blank 所以它应该可以工作。诊断的唯一方法是查看它生成的 html。该页面是否可以在新的任何地方访问?
  • 谢谢!似乎目标是“_blank”并不重要......实际的 URL 是在 MVC 控制器中创建、加密和签名的,所以我需要从中打开新选项卡(同时保持当前选项卡与文件的主列表)...
  • 我一直都有它......我只是把它放在错误的位置......你是 1000% 正确的。谢谢——你是我最喜欢的袋熊!把它放在一个答案中,我会给你信用。

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


【解决方案1】:

您在生成的最终 HTML 中寻找的是以下形式,其中链接的目标属性设置为“_blank”,

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

做对了,你就会得到你想要的行为。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-22
    • 2019-04-14
    • 1970-01-01
    • 2013-12-22
    • 1970-01-01
    • 2016-09-24
    • 2018-06-19
    • 1970-01-01
    相关资源
    最近更新 更多