На мой взгляд, я генерирую ссылку с именем пользователя, номером аккаунта и датой, которая передается контроллеру:
@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" })
Затем мой контроллер принимает эту информацию и генерирует зашифрованный URL-адрес для PDF (мне нужно создать это на месте в моем контроллере, поэтому я не могу просто иметь ссылку в своем представлении, чтобы пользователь мог щелкнуть (это было бы слишком просто!). Мне нужно открыть URL-адрес, который возвращает PDF-файл. Мне нужно взять его и открыть этот 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);
}
Спасибо всем!