2012-08-10 37 views
0

確實我有一個網頁,允許用戶下載Excel報表,在Chrome中,它只是嘗試下載Excel的ASPX頁面,而不是像它成功地在不IE和Firefox。丁目下載aspx頁面,而不是一個擅長像它在IE和Firefox

這是一個已知的問題,是有解決方法嗎?

我在VB中使用這樣的:

db.subRunReader(resultSQL) 
dgProperties.DataSource = db.sqlReader 
dgProperties.DataBind() 
db.subCloseReader() 
db.subCloseConnection() 

Response.ContentType = "application/vnd.ms-excel" 
Response.Charset = "" 
Me.EnableViewState = False 

Dim tw As New System.IO.StringWriter() 
Dim hw As New System.Web.UI.HtmlTextWriter(tw) 
dgProperties.RenderControl(hw) 
Response.Write(tw.ToString()) 
Response.End() 
Response.Redirect(Request.Url.ToString()) 

感謝。

+1

你是如何服務於文件? – RandomWebGuy 2012-08-10 21:14:48

+0

@CrunchyV我更新了這個問題 – Kyle 2012-08-10 21:35:05

+0

是ASP.NET MVC嗎? – ikh 2012-08-10 21:36:14

回答

1

不知道你的具體情況,但總的來說,只要你想下載的文件,它是添加Content-Disposition頭一個好主意。在ASP.NET MVC會做這樣的:

Response.Headers["Content-Disposition"] = 
    "attachment;filename=yourfile.xls"; 

我期待在ASP.NET 2.0中這將是類似的東西。這告訴瀏覽器它需要下載文件。

+0

我只是嘗試這樣做,它修復鉻..現在IE下載aspx頁面。必須是正確的道路,儘管......任何想法爲什麼會打破IE瀏覽器? – Kyle 2012-08-10 21:40:15

+0

那......我沒想到。也許只有當一個'User-Agent'請求頭不包含字符串「MSIE」時才添加該響應頭? – ikh 2012-08-10 21:43:57

+0

或者,嘗試將'Response.ContentType'設置爲''application/octet-stream「'。 – ikh 2012-08-10 21:45:54

相關問題