ASP.NET MVC5 でcsvをpostでダウンロードするには
ASP.NET MVC5 でcsv出力をしようとしています。
パラメータの複数ある画面で、ボタンも複数あるためAjaxを使用して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 ;
}