2012-05-11 18 views
0

ボタンをクリックするとファイルのダウンロードが開始されるようにしています。私が持っている問題は、Fileを返すActionResultメソッドにパラメータを送信したいのですが、POSTでJSONを送信しようとしたとき、またはActionResultメソッドが呼び出されたときにファイルがブラウザに送信されてダウンロードされる。そのコントローラーメソッドへのリンクを入力すると、ファイルは正常にダウンロードされます。 Webページでどのオプションが選択されているかに応じてファイルを動的に変更する必要があるため、ファイルへのリンクはできません。ActionResultメソッドにパラメータを送信し、ファイルを返す - asp.net mvc 3?

私はこれを間違った方法で攻撃している可能性がありますが、扇動は役に立ちます。

Asp.net MVC 3とJqueryを使用しています。ありがとうございます。

編集 私はJavaScriptで、JSONずに行動した結果にのparamsを送信する方法があると思い、私はこれは私があまりにも私の問題を解決するのに役立つだろうと思うが、私はそれを行うするかどうかはわかりません。

+0

$.post("",{data:yourData,function(data){ if(data.filepath!='') location.href=data.filepath;//this will force the browser download dialogue }}); 

のように、そのパスにリダイレクトすることができます。私は2,3日前に同様のことをしましたが、JSONを使用せずにコードを取得しましたか? –

+0

私はこのプロジェクトにJSONを使用することを好みますが、あなたが何をしていたのかを見たいと思います。 –

+0

にはメールアドレスなどがありますか? –

答えて

0

あなたはJSONを使用する必要がありますjson応じてfile pathを返し、その後、コントローラ

public ActionResult GetFile(/*params*/){ 
//your code 
var filepath="some path"; 
return Json(new { filepath=filepath}); 
} 
+0

静的なファイルを返そうとしていないので、私はそれが私を助けるとは思わない、私はコントローラに送信されたparamsに基づいてファイルを生成しようとしています。私が何らかの形で生成するファイルごとに新しいファイルパスを生成することができない限り。私は本当にそのようなことをしたくない。 –