0

いくつかのコントロールを持つ aspx ページがあります。このページのボタンをクリックすると、テキスト ボックスとドロップダウンの値を取得し、何らかの処理を行って別の aspx ページに渡す必要があります。2 番目の aspx はさらに処理を行い、ダウンロードする PDF を生成します。ユーザーを 2 番目のページにリダイレクトさせたくありません。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-Disposition注:を to に設定しないでください。application/pdfこれは多くのブラウザーで認識され、ブラウザーに埋め込まれた pdf リーダーで開こうとするからです。

ボタンのクリックで 2 ページ目に投稿するにはどうすればよいですか?

ボタンのクリック時に 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 に答える