Controller.File(Stream fileStream, String contentType, String fileDownloadName)
メソッドを使用して、サーバーからファイルをダウンロードします。私の場合contentType
はapplication/vnd.openxmlformats-officedocument.spreadsheetml.sheet
. fileDownloadName
引数でファイルに特別な名前を指定します。また、Firefox、Opera、IE9 でうまく動作します。
ただし、IE8 は、指定した名前ではなく、アクションの名前を返します。Download.xlsx
URLがの場合、のように見えます../Report/Download
。
それはなぜですか?
.NET の Content-Disposition ヘッダーによると、私が使用しているオーバーロードは問題を解決するはずです。ただし、IE8 では、ファイルのダウンロード名をエンコードする必要があります。一方、HttpUtility.UrlPathEncode
たとえばでエンコードすると、Firefox はエンコードされたファイル名を表示し始めます。
結局、普遍的な解決策はありますか?