2010-12-15 3 views
0

JQueryを介してコントローラにデータをポストし、FileResultを返すフォームがあります。私はJQueryを使ってコントローラへの投稿に成功したhrefを持っています。 FileResultは生成されますが、クライアントはそれを受け取っていないようです。これに対する標準的なアプローチは何ですか?フォームを投稿し、JQuery/ASPを使用してファイルの結果を取得するMVC

答えて

3

ファイルをjavascriptで受け取っても、どうしたらいいですか?それをクライアントコンピュータに保存しますか?できません。 AJAXを使用してファイルを返すコントローラアクションを要求するのは意味がありません。標準のリンクを作成して、ダウンロードしたファイルの処理方法をユーザーに任せてください。

必要なのは、適切なHTTPヘッダーを設定することです:理にかなって

<%= Html.ActionLink("download file", "download") %> 
+0

public ActionResult Download() { return File(@"c:\foo.pdf", "application/pdf", "foo.pdf"); } 

そしてあなたのダウンロードリンクを生成します。彼らがダウンロードファイルをクリックするとき、私は完全なポストバックを引き起こしたくありません。別のウィンドウを開くことで可能ですか? – Kenoyer130

+0

明確にするために、ファイルは投稿されたデータに基づいて作成されます。静的ファイルではありません。 – Kenoyer130

+0

@Kenoyer、応答ヘッダーを適切に設定すると、そのページに移動しません。 – hunter

関連する問題