Web API を使用した ASP.NET MVC 4 アプリケーションがあります。それはうまくいっています。しかし、問題の 1 つは、IE では Web API からファイルをダウンロードできないことですが、Chrome や Firefox ではダウンロードできます。ブラウザは言う
"Unable to open this internet site. The requested site is either unavailable or cannot be found."
IE 8 と client-side cachingによると、no-cache 設定が問題を引き起こしているようです。そのため、そのダウンロードにプライベートキャッシュを設定したいと思います。しかし、MVC 4 では、HttpResponseMessage にプロパティ "Cache" がなく、プライベート キャッシュを設定する方法もないことがわかりました。誰でもこれを行う方法を示すことができますか?
更新 1:私のデバッグによると、それはキャッシュではなく、次のコードの「ContentDisposition」でした。
HttpResponseMessage response = new HttpResponseMessage();
response.StatusCode = HttpStatusCode.OK;
response.Content = new StreamContent(result);
response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/vnd.ms-excel");
// response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
// {
// FileName = "PY75.xls"
// };
return response;
上記のようにコメントした場合、IE は id をデフォルトのファイル名としてファイルをダウンロードできますが、上記のコメントを外すと、上記のようにはなりません。この問題を解決する方法はありますか? IE が content-disposition ヘッダーを認識できないのはなぜですか?
更新 2: IE 9 のアップグレード後、content-disposition がようやく機能し、Web API からダウンロードできるようになりました。