这是我的代码:
Response.Clear();
Response.AddHeader("content-disposition", "attachment; filename=file.xlsx");
Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
Response.BinaryWrite(pck.GetAsByteArray());
Response.End();
问题是当运行此代码时(单击按钮)我在浏览器中没有要下载的文件(在Chrome \ IE中尝试过)。
pck是一个excel文件(使用epplus库生成)。 我甚至不知道如何调试这部分代码。它什么都不做。
以下是我在浏览器中收到的错误:
未捕获的Sys.WebForms.PageRequestManagerParserErrorException: Sys.WebForms.PageRequestManagerParserErrorException:消息 从服务器收到的邮件无法解析。常见原因 错误是通过调用Response.Write()修改响应时, 启用了响应过滤器,HttpModules或服务器跟踪。
详细信息:在'PKX @π '附近解析时出错。
答案 0 :(得分:2)
我相信您正在使用更新面板。执行异步回发时无法下载文件。添加将下载文件的按钮作为更新面板的Postback触发器。
答案 1 :(得分:0)
你走在正确的轨道上。我想你错过了几行:
Response.Clear();
Response.AddHeader("content-disposition", "attachment; filename=file.xlsx");
Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
Response.BinaryWrite(pck.GetAsByteArray());
Response.Flush();
Response.Close();
Response.End();