2011-09-10 12 views
2

ボタンクリック後にダウンロードページを作ってみたい。このページはいくつかの情報を表示し、しばらくしてからファイルをダウンロードしてください。もしそれがJavaScriptとAjaxと一緒に働くなら最高です。私は非同期コントローラで試してみましたが、これは本当にうまく動作しません。どのようにASP.NET MVC 2でJS/AJAXなしの遅延ダウンロードページ

+1

あなたは、JavaScriptを使用せずにJavaScriptを実行するのが非常に困難になるクライアントでの実行を遅らせたいと思っています。なぜJSを使用できないのですか? – timothyclifford

+0

@timothy - 私は同じように考えていましたが、メタタグを介してHTTP Refreshヘッダーを使用して行うことができます。 – tvanfosson

答えて

0

私はこれを実現させる1つの方法しか考えることができません。インターバル後にブラウザをダウンロードリンクにリダイレクトするHTTPヘッダー(リフレッシュ)を追加します。リンクは添付ファイルの応答を返すので、ブラウザページを実際に更新するべきではありませんが、ダウンロードを開始する必要があります。ビューの追加のheadセクションで :

<meta http-equiv="refresh" content="30; ,[email protected]"> 

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

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

関連する問題