使用response.write()时出错

时间:2011-09-26 08:38:30

标签: asp.net csv attachment

我需要在客户端计算机中将文件另存为.csv。我正在使用下面的代码。

protected void btnGen_Click(object sender, EventArgs e)
{
    try
    {
        string fileName = "test";
        string attachment = "attachment; filename=" + fileName + ".csv";
        List<string> lst1 = new List<string> { "wert", "fds", "hjgfh", "hgfhg" };
        List<string> lst2 = new List<string> { "hgfds", "hdfg", "yretg", "treter" };
        List<string> lst3 = new List<string> { "hgfdgf", "gfdg", "gfdgf", "ghfdg" };
        List<List<string>> lst = new List<List<string>> { lst1, lst2, lst3 };

        StringBuilder sb = new ExportFacade().GenerateStringBuilder(lst);

        Response.ContentType =  "text/csv" ;
        lblProgress.ForeColor = System.Drawing.Color.Green;
        lblProgress.Text = "File created and write successfully!";    
        HttpContext.Current.Response.AddHeader("content-disposition", attachment);
        Response.Write(sb.ToString());
        lblProgress.ForeColor = System.Drawing.Color.Green;
        lblProgress.Text = "File created and write successfully!";
        Response.Flush();
        Response.End();               
    }
    catch (Exception ex)
    {
        lblProgress.ForeColor = System.Drawing.Color.Red;
        lblProgress.Text = "File Saving Failed!";                
    }

}

我没有使用更新面板。

当我点击按钮时,我收到以下错误

  

Sys.WebForms.PageRequestManagerParserErrorException:消息   从服务器收到的邮件无法解析。常见原因   错误是通过调用Response.Write()修改响应时,   启用了响应过滤器,HttpModules或服务器跟踪。

如果你能帮助我摆脱这个问题,对我来说将是一个很大的帮助。 谢谢。

1 个答案:

答案 0 :(得分:0)

我解决了。母版页中的Ajax脚本管理器已经创建了该问题。删除后,该功能正常工作。但标签没有更新,因为响应不适用于页面。