2011-09-11 47 views
0

下面的方法文件,基於代碼this question,顯示在瀏覽器中的文件下載對話框,但隨後的下載永遠不會啓動(它停留在0%):下載一個字符串作爲ASP.NET

protected void lnkExport_Click(object sender, EventArgs e) { 
    var bytes = Encoding.ASCII.GetBytes(SelectRecords()); //Data to be downloaded 
    Response.Clear(); 
    Response.ContentType = "application/vnd.ms-excel"; 
    Response.AddHeader("Content-Disposition", "attachment; filename=\"test.xls\""); 
    using (var stream = new MemoryStream(bytes)) { 
    Response.AddHeader("Content-Length", stream.Length.ToString()); 
    stream.WriteTo(Response.OutputStream); 
    } 
} 

不知道怎麼回事?

+0

這不是一個Excel文件,你不應該撒謊說,這是。 – SLaks

+1

True,SelectRecords()實際返回一個HTML表格。然而,其目的是Excel應該打開它(可以),最簡單的方法是給它一個.xls擴展名。 :) – James

+0

我相信這將導致Excel安全警告。 – SLaks

回答

3

你的代碼工作對我很好,但你可能要嘗試添加這是你的點擊處理程序的最後一行:

Response.End(); 
+0

其實它是一個HttpModule嘗試Gzip響應流,所以我不得不設置Response.Filter = null;和Response.ClearHeaders();不過,您的答案讓我知道了,因爲您說代碼適合您! – James

相關問題