2012-09-21 142 views
2

我有一个生成按钮的视图。当我点击它时,我使用ajax调用导航到控制器的Generate方法。Asp MVC 3下载压缩文件

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相当陌生,但我不确定自己做错了什么。任何建议与代码示例是值得欢迎的。谢谢!

回答

1

这是一个Ajax调用,它没有意义在一个Ajax调用... AJAX代表了异步JavaScript和XML返回一个文件.. OK使用JSON广告其他一些基于文本的东西,但要处理二进制文件,你需要一些exta作品。 在你的场景中,我认为最好的做法(最简单的)是执行普通的回发,而不是ajax(或者甚至是简单的GET)。

+0

谢谢!它与普通的回发一起工作...并且对于迟到的回答感到抱歉! – Mdb