いくつかのコントロールを持つ aspx ページがあります。このページのボタンをクリックすると、テキスト ボックスとドロップダウンの値を取得し、何らかの処理を行って別の aspx ページに渡す必要があります。2 番目の aspx はさらに処理を行い、ダウンロードする PDF を生成します。ユーザーを 2 番目のページにリダイレクトさせたくありません。PDFのダウンロードを新しいウィンドウに表示したいだけです。どうすればこれを達成できますか?
質問する
806 次
1 に答える
2
Content-Disposition
http ヘッダーを設定し、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 に答える