aspnet-CompatibleFileResultSample

ASP.NET MVC の FileResult をレガシーブラウザでダウンロードするときのサンプルです。 IE8 以下のいくつかの不具合を回避しています。

// ####################
// # Download will fail when the ssl and no-cache.
// ####################

var cacheControl = response.Headers["Cache-Control"];
if (!string.IsNullOrEmpty(cacheControl))
{
    response.Headers["Cache-Control"] = RemoveNoCache(cacheControl);
}

var pragma = response.Headers["Pragma"];
if (!string.IsNullOrEmpty(cacheControl))
{
    response.Headers["Pragma"] = RemoveNoCache(pragma);
}
// ####################
// # Not supported RFC 6266 (RFC 2231/RFC 5987).
// ####################

var contentDisposition = response.Headers["Content-Disposition"];
if (!string.IsNullOrEmpty(contentDisposition))
{
    response.Headers["Content-Disposition"] = ReplaceFileName(contentDisposition);
}
[CompatibleFileResultAttribute]
public ActionResult File(string id)

詳細はこちらへ

License

under MIT License