0

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

4

1 回答 1

2

您需要设置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-Dispositionapplication/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;
}
于 2012-09-26T16:31:30.507 回答