Откройте PDF-файл в новой вкладке по URL-адресу из моего контроллера MVC [EDITED]

На мой взгляд, я генерирую ссылку с именем пользователя, номером аккаунта и датой, которая передается контроллеру:

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

Спасибо всем!


person Danimal111    schedule 30.12.2016    source источник
comment
Сделайте ссылку с целевым атрибутом, например. ‹a href=the_pdf_link/ target=_blank›Открыть PDF‹/a›   -  person Vanquished Wombat    schedule 31.12.2016
comment
Можете ли вы показать мне это в коде? Я не уверен, куда бы я это поместил (имейте в виду, что «я думаю?» должен был бы войти в код контроллера? Код выше открывается на той же странице... Мне нужно выяснить, как его открыть в новой вкладке.   -  person Danimal111    schedule 16.01.2017
comment
хорошо - код в вашем вопросе уже нацелен на _blank, поэтому он должен работать. Единственный способ диагностировать — увидеть html, который он генерирует. Доступна ли новая страница в любом месте?   -  person Vanquished Wombat    schedule 17.01.2017
comment
Спасибо! Кажется, не имеет значения, что цель _blank... фактический URL-адрес создается, шифруется и подписывается в контроллере MVC, поэтому мне нужно открыть новую вкладку (при сохранении текущей вкладки с помощью основной список файлов)...   -  person Danimal111    schedule 17.01.2017
comment
У меня все это время было... Я просто не туда поставил... Вы были правы на 1000%. Спасибо, ты мой любимый вомбат! Поместите это в ответ, и я отдам вам должное.   -  person Danimal111    schedule 18.01.2017


Ответы (1)


То, что вы ищете в конечном HTML-коде, который вы создаете, похоже на форму ниже, где ссылка имеет целевой атрибут, установленный на «_blank»,

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

Примите это правильно, и вы получите желаемое поведение.

Если проблема заключается в коде на стороне сервера, то, когда вы ее решите, отредактируйте свой вопрос, включив в него исправление, чтобы любой, кто заглядывает из будущего, мог видеть обе стороны истории.

person Vanquished Wombat    schedule 17.01.2017