非表示の入力からcsv文字列を取得し、CSVファイルとして応答に書き込むボタンクリックイベントにいくつかのコードがあります。
これは、Chrome、Firefox、ie7、ie9 の互換モードで正常に動作します。ただし、ie8 または ie9 のデフォルトでは機能しません。
これをフィドラーで見ると、csv が応答に書き込まれていますが、直後に別の get 要求が行われ、ページがリロードされます。ファイル保存ダイアログは表示されません。
protected void btnCsvHidden_Click(object sender, EventArgs e)
{
var csv = csvString.Value;
var filename = "Reporting";
Response.Clear();
Response.ClearHeaders();
Response.AddHeader("Cache-Control", "no-store, no-cache");
Response.AddHeader("content-disposition", "attachment; filename=\"" + filename + ".csv\"");
Response.ContentType = "text/csv";
Response.Write(csv);
Response.End();
}