从我的 MVC 控制器 URL 在新选项卡中打开 PDF [已编辑]
Open a PDF in new tab from URL from my MVC Controller [EDITED]
在我看来,我生成了一个 link,其中包含传递给控制器的用户名、帐号和日期:
@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 link:
@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(我必须在我的控制器中当场创建它,所以我不能只在我的视图中有一个 link用户点击(那太容易了!)。我需要打开 URL 其中 returns 一个 PDF。我需要打开它并在新选项卡中打开该 PDF(同时保留原始文件选项卡打开)。这是我最近的尝试,它在同一个 window 中打开,但如何在新选项卡中打开?
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);
}
感谢大家!
您在生成的最终 HTML 中寻找的是下面的形式,其中 link 的目标属性设置为“_blank”,
<a href="the_pdf_link/" target="_blank">Open PDF</a>
做对了,你就会得到你想要的行为。
如果问题出在 server-side 代码中,那么当您解决它时,请编辑您的问题以包含修复程序,这样未来任何人都可以看到故事的两面。
在我看来,我生成了一个 link,其中包含传递给控制器的用户名、帐号和日期:
@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 link:
@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(我必须在我的控制器中当场创建它,所以我不能只在我的视图中有一个 link用户点击(那太容易了!)。我需要打开 URL 其中 returns 一个 PDF。我需要打开它并在新选项卡中打开该 PDF(同时保留原始文件选项卡打开)。这是我最近的尝试,它在同一个 window 中打开,但如何在新选项卡中打开?
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);
}
感谢大家!
您在生成的最终 HTML 中寻找的是下面的形式,其中 link 的目标属性设置为“_blank”,
<a href="the_pdf_link/" target="_blank">Open PDF</a>
做对了,你就会得到你想要的行为。
如果问题出在 server-side 代码中,那么当您解决它时,请编辑您的问题以包含修复程序,这样未来任何人都可以看到故事的两面。