1

クライアントが PDF ファイルをダウンロードできるようにしたい。だから私はコードでLinkBut​​tonをつけました:

マークアップ:

<asp:LinkButton ID="lnkPrintHere" runat="server" OnClick="lnkPrintHere_Click" Text="Click here" />

コードビハインド:

protected void lnkPrintHere_Click(object sender, EventArgs e)
{
    Response.ContentType = "application/pdf";
    Response.AppendHeader("Content-Disposition", "attachment; filename=" + fileName);
    Response.TransmitFile("/_layouts/Files/" + fileName);
    Response.End();
}

リンクが最初にクリックされると、すべてが正常に機能します。OnClickその後のクリックでは、イベントは発生しません。なぜこれが起こっているのか誰にも分かりますか?

PS: さらに詳しい情報が必要な場合は、お気軽にお問い合わせください。

4

2 に答える 2

0

応答メソッド自体でいつでも代替手段を試すことができます。私はあなたのコードを Response.Close で使用し、正常に動作しました。しかし、これは正しいオプションではありませんが、ダウンロードにクエリ文字列を使用することも正しいオプションではありません。

于 2010-12-28T20:40:09.653 に答える
0

これは、使用すると発生しますResponse.End()

これはここで言及されています: ASP.NETで応答にファイルを書き込んだ後、ポストバックが機能しません

1 つの回避策は、クエリ文字列アプローチを使用することです。リンクボタンをクリックすると、クエリ文字列を含む同じページにリダイレクトされます。また、ページの読み込み時に、クエリ文字列を検出すると、PDF を発行して返します。

于 2010-12-28T20:20:22.283 に答える