Tôi đang xuất một GridView thành excel, sử dụng .NET 4.0 trong một ứng dụng web, tải trang và cần tệp được tạo và sau đó là trang được chuyển hướng đến trang gọi điện. Tôi đang chạy vào các vấn đề bởi vì mã của tôi để xuất khẩu vượt trội như sau:Chuyển hướng đến trang khác sau khi phản hồi.End() đã được gọi trong C#
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();
Tôi biết rằng nếu tôi đặt Response.Redirect() trước khi END(), tôi sẽ được chuyển nhưng file là không bao giờ tạo ra, và nếu tôi đặt Response.Redirect() sau .End() Tôi nhận được tệp nhưng không có chuyển hướng.
Mã được viết ở trên chỉ hoạt động tốt khi tạo tệp, tuy nhiên khi sau khi tệp được tạo, tôi vẫn bị kẹt khi xem Hoạt ảnh đang tải vì tôi không thể thoát ra khỏi trang. Ý tưởng nào?
Vì kết quả của yêu cầu là tệp xls chứ không phải html, điều đó có thực sự hoạt động không? –
Tôi nghĩ là có. vì trước hết HTTP được sử dụng để phân phối phản hồi. Trong trường hợp này, gói HTTP trông giống như một tập các tiêu đề theo sau là dữ liệu nhị phân (tệp xls). Trong một số trường hợp adiitionaly nó sẽ là cần thiết để thiết lập loại contnt để ứng dụng/octet-stream nhưng nó phụ thuộc vào loại kết quả nào chúng ta cần – ILya
Nó không hoạt động, nó sẽ tải tệp nhưng không chuyển hướng ... – EvanGWatkins