Javascript 响应结束时导出到exel文件出错

Javascript 响应结束时导出到exel文件出错,javascript,c#,html,asp.net,Javascript,C#,Html,Asp.net,我尝试从数据访问层中返回dataTable的函数导出excel。现在我的问题是为什么我的响应。end返回一个错误。 datagrid具有数据 无法计算表达式,因为代码已优化或本机帧位于调用堆栈顶部 我的出口代码 if (command == "export") { StringWriter osStringWritter = new StringWriter(); Html32TextWriter osHtmlTextWritter = new Html32TextWriter(

我尝试从数据访问层中返回
dataTable
的函数导出excel。现在我的问题是为什么我的
响应。end
返回一个错误。 datagrid具有数据

无法计算表达式,因为代码已优化或本机帧位于调用堆栈顶部

我的出口代码

if (command == "export") {
    StringWriter osStringWritter = new StringWriter();
    Html32TextWriter osHtmlTextWritter = new Html32TextWriter(osStringWritter);
    DataTable dt = new DataTable();
    DataGrid dgv = new DataGrid();
    PostTransDA transaction = new PostTransDA();
    try {

        dt = transaction.getTransaction(from_Dates, to_dates);
        if (dt.Rows.Count > 0) {
            Response.Clear();
            Response.Buffer = false;
            Response.ContentType = "application/vnd.ms-excel";
            Response.AddHeader("content-disposition", string.Format("attachment;filename={0}.xls", "TransactionReport"));
            Response.Charset = "";

            dgv.DataSource = dt;
            dgv.DataBind();

            dgv.RenderControl(osHtmlTextWritter);
            Response.Write("Report Date:" + DateTime.Now);
            Response.Write(osStringWritter.ToString());
            Response.End();
            HttpContext.Current.Response.Flush();
            HttpContext.Current.Response.SuppressContent = true;
            HttpContext.Current.ApplicationInstance.CompleteRequest();

            dgv = null;
            osStringWritter = null;
            osHtmlTextWritter = null;

        }
    }
    catch (Exception ex)
    {
        ScriptManager.RegisterStartupScript(this.Page, Page.GetType(), "Script", "alert('" + ex.Message + "');", true);
    }
}
它返回
Response.End()部分的错误

我做错了什么?或者我的代码中有什么问题,请查看下面的链接以了解您遇到的问题。使用Response.End或Response.Redirect或Server.Transfer时,需要处理ThreadAbortException


现在响应结束时没有错误,但没有发生任何事情它没有导出excel它只是读取代码然后什么也不做,知道为什么吗?检查此链接,使用代码在此处准确描述,然后查看发生了什么。注释这两行并检查。HttpContext.Current.Response.SuppressContent=true;HttpContext.Current.ApplicationInstance.CompleteRequest();兄弟还是没发生什么事你试过使用我上面评论中的链接中的代码吗?