2017-03-22 41 views
1

我嘗試將文件返回給用戶。如何將文件返回給用戶?

「GetExcel」似乎工作和調試我可以看到「巴」有數據。

的方法完成,但沒有出現被返回給瀏覽器 - 我希望看到的文件下載對話框。

C# 

     public FileResult GetExcel() 
     {   
      using (ExcelPackage pck = new ExcelPackage()) 
      { 
       ExcelWorksheet ws = pck.Workbook.Worksheets.Add("Demo"); 

       ws.Cells["A1"].Value = "LBHERE"; 

       var ba = pck.GetAsByteArray(); 
       return File(ba, "text/plain", "testFile.txt"); 
      } 

     } 

Javascript 

     function clickedTest() { 
      alert("Test clicked"); 
      $.get(myPath + "/Employee/GetExcel", { }, function (data) { 
      }) 

     }; 
+1

使用'location.href = mypath中+ 「/員工/ GetExcel」'代替,或使用XHR2下載該文件。常規的'jQuery.get'方法不適合文件下載。 – haim770

+0

如果您添加爲答案,我會將其勾選... – ManInMoon

回答

0

jQuery的$.get()功能從網頁到通過AJAX客戶端腳本中提取數據。如果你想下載文件,這不是你想要做的。相反,您應該打開一個新選項卡,設置爲您要下載的文件的URL。

試試這個:

function clickedTest() { 
    window.open(myPath + "/Employee/GetExcel", "_blank"); 
} 

如果你的瀏覽器仍然沒有啓動下載,而是隻顯示一個文件,你可能要多走一步。

某處在您的服務器端代碼,當你有機會獲得Response對象,你應該設置內容處置頭附件,爲您提供所服務的電子表格文件名。這會通知您的瀏覽器您正在請求的文件將被下載,而不是顯示。

Response.AddHeader("Content-Disposition", "attachment;filename=myfile.xls") 

當然,與您的電子表格正確的文件名替換myfile.xls

這可以如下完成。

相關問題