2016-09-12 86 views
0

我創建一個CSV文件與StringBuilder,我試圖下載的文件用下面的代碼:CSV文件沒有在asp.net下載,因爲Respose.Write不工作

Response.Clear(); 
Response.Buffer = true; 
Response.AddHeader("content-disposition", "attachment;filename=Report.csv"); 
Response.Charset = "utf-8"; 
Response.ContentType = "text/csv"; 
Response.Output.Write(sb.ToString()); 
Response.Flush(); 
Response.End(); 

我在其他項目中使用這個相同的代碼沒有問題,但在這一個,當我點擊Export button代碼執行,但沒有任何反應,沒有例外,沒有錯誤,什麼都沒有。

嘗試以下方法:Response.Write(sb.ToString());"application/text"application/csv

任何人都可以點我在正確的方向,使其工作?

UPDATE

出於某種原因,我還不知道,Response.Output.WriteResponse.Write不工作,因爲我不能得到任何東西,甚至不是一個單一的字符串或JavaScript警告。

有什麼想法?

回答

0

刪除此行

Response.Flush(); 

因爲你Response.Buffer = true

和使用

Response.Write(sb.ToString()); 
Response.End(); 
+0

還是一樣,什麼都不會發生 –

+0

顯然'Response.Output.Write'或'的Response.Write '因爲某些原因沒有工作,因爲我什麼都收不到,甚至沒有一個字符串或javascript警報。 –

0

使用此代碼。此代碼會爲你工作:

Response.Clear(); 
Response.Buffer = true; 
Response.AddHeader("content-disposition","attachment;filename=YourFileName.csv"); 
Response.Charset = "utf-8"; 
Response.ContentType = "application/text"; 
StringWriter sw = new StringWriter(); 
HtmlTextWriter hw = new HtmlTextWriter(sw); 
{YourControlId}.RenderControl(hw); 
Response.Output.Write(sw.ToString()); 
Response.Flush(); 
Response.End(); 
+0

仍然是一樣的,顯然'Response.Output.Write'或'Response.Write'由於某些原因不起作用,因爲我什麼也收不到,甚至沒有一個字符串或javascript警報。 –

+0

你是否用try-catch塊包圍了你的代碼並檢查是否有引發的異常? –