ボタンのイベントでオンザフライでファイルを生成しています。次のコードが必要です。
Response.ClearHeaders();
Response.ClearContent();
Response.Buffer = false;
Response.ContentType = "application/octet-stream";
Response.AppendHeader("Content-Disposition", "attachment; filename=Duck.xml");
Response.Write("First part");
Response.Flush();
//simulate long operation
System.Threading.Thread.Sleep(10000);
//Done
Response.Write("Done");
Response.Flush();
Response.End();
操作には時間がかかる可能性があるため、最初のフラッシュの後に [名前を付けて保存] ダイアログが表示されるようにしたいと思います。どうすればいいですか?
いくつか遊んだ後、256文字をバッファリングすることがわかりました(新しい文字列( 'x'、256)をクライアントに送信することで再現可能です)。