将所有当前缓冲区输出发送到客户端并导航到其他页面

时间:2015-11-30 05:38:08

标签: c# asp.net excel

我想将所有当前缓冲输出(这是一些随机代码到excel表)发送到客户端并导航到其他页面。

我遇到像

这样的问题
  1. 如果我使用Response.End(),页面将停止执行,并且Response.Redirect不会执行。
  2. 如果我使用Response.Flush(),页面会发送缓冲区输出,但在重定向时我收到异常“在发送HTTP标头后无法重定向。”
  3. 我的代码是这样的:

    // this code sends some codes to excel.
    ExportToExcel(Codes);
    Response.End(); // what should i use
    Response.Redirect("Coupons.aspx");
    

    ExportToExcel mehtod:

    public void ExportToExcel(List<string> codes)
    {
        Response.ClearContent();
        Response.Buffer = true;
        Response.AddHeader("content-disposition",
            string.Format("attachment; filename={0}_CODES.xls", DateTime.Today.Date.ToString("d")));
        // Response.AddHeader("content-disposition", @"attachment;filename=""MyFile.pdf""");
        Response.ContentType = "application/excel";
    
        List<string> codeList = codes;
    
        string str = "COUPON CODES";
    
        Response.Write(str);
        str = "\t";
        Response.Write("\n");
        Response.Write("\n");
        foreach (string code in codeList)
        {
            Response.Write(code);
            Response.Write("\n");
        }
    }
    

    这是我第一次在这里提问。任何回复和建议对我都有帮助。

    提前致谢。

0 个答案:

没有答案