0
我從頁面上的鏈接生成CSV並將其發回給用戶。我希望維護頁面上下文。此代碼完美適用於我的2008 Dev框中的IE,Chrome和Firefox,但是在Vista,Win 7或Win 8上運行時,該文件具有附加頁面的HTML。Response.Flush在Windows Vista,7,8,但不是在Server 2008上寫頁面的HTML
我對傳遞文件的方法做了一些公正的閱讀,並得出結論認爲response.flush()是最好的方法。
// Convert to Bytes for Binary Write
Byte[] bytes = Utils.Instance.ReadStreamToByte(streamWriter.BaseStream);
// Call ContentType followed by clear so no extraneous content is sent. see http://msdn.microsoft.com/en-us/library/system.web.httpresponse.aspx
HttpContext.Current.Response.ContentType = "text/csv";
HttpContext.Current.Response.Clear();
HttpContext.Current.Response.AppendHeader("content-length", bytes.Length.ToString());
HttpContext.Current.Response.AppendHeader("content-Disposition", "attachment;filename=" + "MyAccount Sales Report " + MonthDDL.SelectedItem.Text + "-" + YearDDL.SelectedItem.Text + ".csv");
HttpContext.Current.Response.BinaryWrite(bytes);
HttpContext.Current.Response.Flush();
我查找了爲什麼發生這種情況,還沒有找到任何相關的幫助。我確實改變了Clear()的位置;按照上面評論中列出的微軟文章,但這沒有任何影響。