0

ボタンをクリックするとファイルのダウンロードが開始されるページを作成しようとしています。私が抱えている問題は、ファイルを返す ActionResult メソッドにパラメーターを送信したいのですが、投稿で JSON を送信しようとしたり、ActionResult メソッドを取得しようとすると、ファイルがブラウザーに送信されてダウンロードされないことです。 . そのコントローラーメソッドへのリンクを入力すると、ファイルは正常にダウンロードされます。Webページで選択されているオプションに応じてファイルを動的に変更する必要があるため、ファイルへのリンクを作成することはできません。

私はこれを間違った方法で攻撃している可能性があると感じています。どんな扇動も役に立ちます。

Asp.net MVC 3 と Jquery を使用しています。よろしくお願いします。

編集 JSON を使用せずにアクション結果にパラメーターを送信する方法があると思いますが、JavaScript を使用するだけで問題を解決できると思いますが、その方法がわかりません。

4

1 に答える 1

0

応答でを返し、file path次のjsonようにそのパスにリダイレクトできます

$.post("",{data:yourData,function(data){

 if(data.filepath!='')
 location.href=data.filepath;//this will force the browser download dialogue 
}});

コントローラーで

public ActionResult GetFile(/*params*/){ 
 //your code
 var filepath="some path";
 return Json(new { filepath=filepath});
}
于 2012-05-11T15:42:39.870 に答える