我正在將一個gridview導出爲excel,在Web應用程序中使用.Net 4.0,頁面加載時需要生成文件,然後頁面被重定向到呼叫頁面。我遇到的問題,因爲我的代碼導出到Excel如下:在C#中調用Response.End()之後重定向到另一個頁面
gvSummary.Style.Add("font-size", ".6em");
Response.Clear();
string attachment = "attachment; filename=filename.xls";
Response.ClearContent();
Response.AddHeader("content-disposition", attachment);
Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
StringWriter sw = new StringWriter();
HtmlTextWriter htw = new HtmlTextWriter(sw);
gvSummary.GridLines = GridLines.Horizontal;
gvSummary.RenderControl(htw);
Response.Write(sw.ToString());
Response.End();
我知道,如果我把的Response.Redirect()的.END()之前,我會重定向但文件從來沒有生成,如果我把.End()之後的Response.Redirect()我得到的文件,但沒有重定向。
上面寫的代碼在生成文件時工作得很好,但是當生成文件後,我仍然看不到我的加載動畫,因爲我無法跳出頁面。有任何想法嗎?
由於請求的結果是一個xls文件,而不是html,會真的有用嗎? – 2010-09-09 13:24:37
我想是的。因爲首先使用HTTP來傳遞響應。在這種情況下,HTTP包看起來像是一組頭,然後是二進制數據(xls文件)。在某些情況下adiitionaly它將有必要設置應用程序/八位字節流的contcon類型,但它取決於我們需要什麼樣的結果 – ILya 2010-09-09 13:36:03
它沒有工作,它會加載文件,但不重定向... – EvanGWatkins 2010-09-09 13:39:30