【问题标题】:Downloadinf a pdf in new window without redirecting在新窗口中下载pdf而不重定向
【发布时间】:2012-09-18 08:11:51
【问题描述】:

我有一个包含多个控件的 aspx 页面。当我单击此页面上的按钮时, 我需要获取文本框和下拉列表的值并进行一些处理并将其传递到另一个 aspx 页面。第二个 aspx 将进行进一步处理并生成要下载的 pdf。 我不希望用户被重定向到第二页。我只是希望 pdf 下载出现在新窗口中。 我怎样才能做到这一点?

【问题讨论】:

标签: asp.net pdf-generation http-redirect


【解决方案1】:

需要设置Content-Dispositionhttp头,直接返回pdf。

像这样:

Response.ContentType = "application/x-download";
Response.AddHeader("Content-Disposition", string.Format("attachment; filename=\"{0}\"", fileName));
Response.WriteFile(filePath + fileName);
Response.Flush();
Response.End();

注意:不要将Content-Disposition 设置为application/pdf,因为许多浏览器都可以识别它,它们会尝试使用浏览器中嵌入的 pdf 阅读器打开它。

如何在点击按钮时发布到第二页?

在您的按钮单击上设置 PostbackUrl,如下所示:

<asp:Button 
  ID="Button1" 
  PostBackUrl="~/TargetPage.aspx"
  runat="server"
  Text="Submit" />

您可以通过使用PreviousPage 属性访问控件来从目标页面上的当前页面读取值,如下所示:

TextBox SourceTextBox = 
    (TextBox)Page.PreviousPage.FindControl("TextBox1");
if (SourceTextBox != null)
{
    Label1.Text = SourceTextBox.Text;
}

【讨论】:

  • 如何将数据从第一个 aspx 传递到第二个 aspx 页面,然后从第二个 aspx 开始下载?
  • 我希望在新窗口中下载 pdf。不是同一个窗口。
  • 要下载吗?还是在新窗口中打开?
猜你喜欢
  • 1970-01-01
  • 2012-09-01
  • 2018-06-02
  • 1970-01-01
  • 1970-01-01
  • 2019-03-18
  • 1970-01-01
  • 1970-01-01
  • 2017-03-05
相关资源
最近更新 更多