問題
ASP.Net Web APIコントローラーでファイルを返したいのですが、すべてのアプローチでHttpResponseMessage
JSONとして返します。
これまでのコード
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はHttpResponseMessage
HTTPコンテンツヘッダーがに設定されたJSONを返しますapplication/json
。
return File(stream, "application/octet-stream", "filename.xlsx");
これにより、ダウンロード時にユーザーが直接開くことができます。