将参数发送到ActionResult方法并返回一个文件 - asp.net mvc 3?

时间:2012-05-11 15:33:50

标签: json asp.net-mvc-3 file

我正在尝试创建一个页面,当单击按钮时,文件开始下载。我遇到的问题是我想将参数发送到返回File的ActionResult方法,但是当我尝试使用post发送JSON或者获取ActionResult方法时会调用但是文件没有被发送到浏览器以进行下载。如果我输入指向该控制器方法的链接,则文件下载正常。我不能只有一个文件的链接,因为我需要动态更改文件,具体取决于在网页上选择的选项。

我感觉我可能会以错误的方式攻击这个,任何煽动都会有所帮助。

我正在使用Asp.net MVC 3和Jquery,先谢谢。

修改 我想有一种方法可以将params发送到没有JSON的动作结果,只需使用JavaScript,我认为这也可以帮助我解决我的问题,但我不知道该怎么做。

1 个答案:

答案 0 :(得分: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});
}