1

これが私が持っているコードです:

                Response.Clear();
                Response.AddHeader("content-disposition", "attachment;  filename=file.xlsx");
                Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
                Response.BinaryWrite(pck.GetAsByteArray());
                Response.End();

問題は、このコードを実行すると(ボタンをクリックすると)、ブラウザにダウンロードするファイルがないことです(Chrome \ IEで試してみました)。

pckはExcelファイルです(epplusライブラリで生成されます)。コードのこの部分をデバッグする方法すら知りません。何もしていません。

ブラウザで発生するエラーは次のとおりです。

Uncaught Sys.WebForms.PageRequestManagerParserErrorException:Sys.WebForms.PageRequestManagerParserErrorException:サーバーから受信したメッセージを解析できませんでした。このエラーの一般的な原因は、Response.Write()の呼び出しによって応答が変更された場合、応答フィルター、HttpModules、またはサーバートレースが有効になっている場合です。

詳細:「PKX��@ϖ�」付近の解析中にエラーが発生しました。

4

2 に答える 2

2

更新パネルを使用していると思います。非同期ポストバックを実行しているときは、ファイルをダウンロードできません。更新パネルのポストバックトリガーとしてファイルをダウンロードするボタンを追加します。

于 2012-04-12T01:33:18.707 に答える
0

あなたは正しい方向に進んでいます。私はあなたがいくつかの行を逃していると思います:

Response.Clear();
Response.AddHeader("content-disposition", "attachment;  filename=file.xlsx");
Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
Response.BinaryWrite(pck.GetAsByteArray());
Response.Flush();
Response.Close();
Response.End();
于 2012-04-12T01:30:21.853 に答える