Asp MVC 3下载了一个压缩文件

时间:2012-09-21 14:09:11

标签: asp.net-mvc-3

我有一个带有生成按钮的视图。当我单击它时,我使用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很新,我不确定我做错了什么。欢迎使用代码示例提出任何建议。谢谢!

2 个答案:

答案 0 :(得分:1)

这是一个ajax调用,在ajax调用中返回一个文件是没有意义的...... ajax代表异步JavaScript和XML ..确定json ad一些其他基于文本的东西,但是使用二进制文件你需要一些exta作品。 在你的场景中,我认为最好的事情(最简单的一个)是执行正常的回发,而不是ajax(甚至简单的GET也可以)。

答案 1 :(得分:0)

无法通过像这样的ajax请求触发文件下载。

还有其他方法可以让它发生类似的事情。

http://johnculviner.com/post/2012/03/22/Ajax-like-feature-rich-file-downloads-with-jQuery-File-Download.aspx

相关问题