WebAPIコントローラーメソッドからの応答として9MBの.xls
ファイルを送信しようとしています。ユーザーがページ上のボタンをクリックすると、ブラウザからのダウンロードがトリガーされます。
これが私がこれまでに得たものですが、それは機能しませんが、例外もスローしません。
[AcceptVerbs("GET")]
public HttpResponseMessage ExportXls()
{
try
{
byte[] excelData = m_toolsService.ExportToExcelFile();
HttpResponseMessage result = new HttpResponseMessage(HttpStatusCode.OK);
var stream = new MemoryStream(excelData);
result.Content = new StreamContent(stream);
result.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
result.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
{
FileName = "Data.xls"
};
return result;
}
catch (Exception ex)
{
m_logger.ErrorException("Exception exporting as excel file: ", ex);
return Request.CreateResponse(HttpStatusCode.InternalServerError);
}
}
これは、インターフェースのボタンクリックからのcoffeescript / javascriptjqueryajax呼び出しです。
$.ajax(
url: route
dataType: 'json'
type: 'GET'
success: successCallback
error: errorCallback
)
今考えてみると、おそらくdataTypeが間違っていて、jsonであってはなりません...