我有一个带有生成按钮的视图。当我单击它时,我使用ajax调用导航到控制器的Generate
方法。
generate = function () {
$.ajax({
url: "/franchise/Generate",
type: "POST",
data: { id: omega.franchiseInfo.Id(), imagesPath: omega.franchiseInfo.ImagesPath() },
});
}
这是我的Generate
方法:
public ActionResult Generate(int id, string imagesPath)
{
// some logic here
var zipFileName = @"D:\FranchiseGeneration\MyZipFile.zip";
using (var zip = new ZipFile())
{
zip.AddDirectory(@"D:\FranchiseGeneration\Test", "Generation");
zip.Save(zipFileName);
}
return File(zipFileName, "application/zip", "MyZipFile.zip");
}
MyZipFile.zip是在指定的硬盘上创建的。我希望提示用户下载压缩文件...但没有任何反应。我对Mvc3很新,我不确定我做错了什么。欢迎使用代码示例提出任何建议。谢谢!
答案 0 :(得分:1)
这是一个ajax调用,在ajax调用中返回一个文件是没有意义的...... ajax代表异步JavaScript和XML ..确定json ad一些其他基于文本的东西,但是使用二进制文件你需要一些exta作品。 在你的场景中,我认为最好的事情(最简单的一个)是执行正常的回发,而不是ajax(甚至简单的GET也可以)。
答案 1 :(得分:0)
无法通过像这样的ajax请求触发文件下载。
还有其他方法可以让它发生类似的事情。