2012-09-21 188 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