0

IIS 6.1、IE 7、ASP.NET 3.5 SP1 でこれをテストしました。

aspx コードビハインドのメソッドでファイルをダウンロードしています。

Response.ContentType = contentType;
Response.AppendHeader("Content-Disposition", contentDisposition);
Response.BinaryWrite(file);

これはうまく機能しますが、サーバー側のコントロールを変更しようとすると、変更が反映されません。私はこれを ContentType への呼び出しに分離しました。これは、呼び出されたときに、Response ストリームへのすべての保留中の変更を明らかにホイップしますか? これは誰にとってもおなじみの音ですか?

コードが別の分岐を取り、ダウンロードの呼び出しが発生しない場合、マークアップは期待どおりに変更されます。

これを修正し、ページに添付ファイルをフラッシュさせ、同じ応答ストリームで UI を更新する方法について何か提案はありますか?

これは特に ValidationSummary を更新するためのものであるため、最後の手段として PageRequestManager イベントの完了時に JS を引き裂くことができますが、これには JS に依存したくありません。

4

2 に答える 2

1

何をしようとしているのかわからない - ダウンロード ファイルと、リンク元の HTML ページへの更新を同時に提供しようとしているのですか? それは HTML の仕組みではありません。

この結果を達成したい場合は、基本的に、HTML で返されるファイルに移動するメタ リダイレクトをレンダリングする必要があります。このようにして、ページが読み込まれ、ダウンロードが開始されます (多くの場合に見られるように)。ダウンロードサイトの)。

于 2009-12-10T00:08:51.807 に答える
1

fyjham が言ったように、私はあなたが何をしようとしているのかよくわかりません。役立つかもしれないいくつかのヒント:

  1. マークアップとコントロールからのコンテンツが生成されるレンダリング フェーズは、コード ビハインドのほぼ最後のフェーズとして発生することに注意してください (Page_Load のかなり後)。
  2. ヘッダーをフラッシュすると、再度設定することはできません
  3. コントロールは一部の HTTP ヘッダーをオーバーライドできます
  4. ファイルのダウンロードと HTML マークアップを同じ HTTP 応答に混在させることはできません
于 2009-12-10T00:58:37.720 に答える