ASP.NET MVC5 でcsv出力をしようとしています。
パラメータの複数ある画面で、ボタンも複数あるためAjaxを使用してPostしています。
ファイルのダウンロードがされず、またファイル作成もできず困っています。
そもそも、Postでファイルダウンロードを検討していること自体に問題があるのでしょうか。
ご教示ください。
//以下、抜粋 $('#download').click( function () { var param= new Object(); //param set if (parking != null) { $.ajax({ type: "POST", url: "@Url.Action("CreateCsv", "Csv")", data: JSON.stringify(param), contentType: "application/json; charset=utf-8", datatype:'json', success: function () { debugger alert("success"); }, failure: function (data) { debugger alert(data.StatusMessage); }, error: function (data) { debugger alert(data.StatusMessage); } }) } } ); [HttpPost] public ActionResult CreateCsv(Param Pram) { if (Request.IsAjaxRequest()) { // DB からデータ取得 // CSV 内容生成 var fileName = string.Format("filename_{0}.csv", DateTime.Now.ToString("yyyyMMddHHmmss")); var data = Encoding.UTF8.GetBytes(csvString); var stream = new MemoryStream(data); var writer = new StreamWriter(stream); //var fileStreamResult = new FileStreamResult(stream, System.Net.Mime.MediaTypeNames .Text.Plain); //fileStreamResult.FileDownloadName = fileName; //return fileStreamResult; writer.Write(data); writer.Flush(); stream.Position = 0; return File(stream, "text/csv", fileName); } return null ; }
Action result を変えてみたり、return値をbyteにしてみたり、試行錯誤を行いましたがファイルの作成の痕跡もなく行き詰っています。




回答2件
あなたの回答
tips
プレビュー