2

我正在使用 MVC 3。我在服务器上的操作方法中创建了一个 csv 文件(称为 GetCSV())。这是一个 [HttpPost] 操作方法。我想做的是将该 csv 文件作为可下载文件直接发送到网络浏览器。我使用 window.open() 让它工作,但是,这本质上是一个 GET 方法,我需要一些使用 POST 的东西,因为我需要将很多参数传递给它。理想情况下,我想使用 Ajax,因为我可以使用这种方法轻松地将大量参数传回服务器。关于如何使用 Ajax 调用将参数传递给服务器然后以某种方式将响应作为可下载文件打开的任何想法?我会很感激任何建议!

4

2 回答 2

1

我的解决方案是使用 Microsoft 的 MVC 3 Ajax Form 而不是 JQuery 的 Ajax。几个月前,我纯属偶然发现,如果您没有为 MVC Ajax 表单指定“成功”函数,它只会将文件发送到 Web 客户端进行下载。这就是我需要发生的事情。我试过这个,它确实按预期工作。

于 2013-04-07T03:23:29.553 回答
0

您不能使用 javascript(至少以所有浏览器支持的标准方式)或 ajax 将文件保存到本地文件系统。这就是为什么推荐的方法是不使用ajax,通常通过GET。

但是,您可以通过 jquery 的.param()将带有参数的 json 对象转换为 URL,如本答案所示。

如果您确实想探索 javascript 替代方案,也许您可​​以查看仅由 chrome AFAIK 支持的FileSystem API 。

于 2013-04-06T23:42:26.623 回答