問題
ASP.Net Web APIコントローラーでファイルを返したいのですが、すべてのアプローチでHttpResponseMessageJSONとして返します。
これまでのコード
public async Task<HttpResponseMessage> DownloadAsync(string id)
{
var response = new HttpResponseMessage(HttpStatusCode.OK);
response.Content = new StreamContent({{__insert_stream_here__}});
response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
return response;
}
ブラウザでこのエンドポイントを呼び出すと、Web APIはHttpResponseMessageHTTPコンテンツヘッダーがに設定されたJSONを返しますapplication/json。
return File(stream, "application/octet-stream", "filename.xlsx");これにより、ダウンロード時にユーザーが直接開くことができます。