【发布时间】: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