2

ボタンクリック後にダウンロードページを作りたい。このページにはいくつかの情報が表示され、しばらくするとファイルのダウンロードが開始されます。それが JavaScript や Ajax なしで機能するなら最高です。非同期コントローラーで試しましたが、これは実際には機能しません。

4

1 に答える 1

0

これを実現する方法は1つしか思いつきません。間隔の後にブラウザーをダウンロード リンクにリダイレクトする HTTP ヘッダー (更新) を追加します。リンクは添付ファイルである応答を返すため、実際にはブラウザー ページを更新するのではなく、ダウンロードを開始する必要があります。ビューのheadセクションに次を追加します。

<meta http-equiv="refresh" content="30; ,URL=@Model.DownloadURL">

これは、モデルの DownloadURL モデル プロパティにダウンロード用の URL が含まれていることを前提としています。30 秒後にダウンロードが開始されます。

余談ですが、最初のダウンロード ページを表示するには AJAX が役立つかもしれませんが、AJAX 経由でファイルをダウンロードすることはできません。XMLHttpRequest は を処理しないため、完全なリクエストが必要Content-Disposition: attachmentです。

于 2011-09-10T13:30:33.560 に答える