c# - 导出文档后响应关闭

标签 c# asp.net export-to-excel response.write export-to-word

我一直在尝试使用 ASP.Net 将 Word 文档导出到 Response 中。所以我用这段代码实现了这个目标。

Response.Clear();
Response.ClearHeaders();
Response.ClearContent();
Response.ContentEncoding = Encoding.UTF8;
Response.Charset = "UTF-8";
Response.Buffer = true;

this.EnableViewState = false;
Response.ContentType = "application/msword";
Response.AddHeader("content-disposition", "attachment;filename=ExportedData" + Guid.NewGuid().ToString().Remove(5) + ".docx");

var wordData = this.RequestService.ExportToWord(this.RequestItem);

Response.BinaryWrite(wordData);
Response.Flush();

//Response.Clear();
//Response.End();
//Response.Close();
//RedirectToSamePage();
//Response.Flush();

但问题是,当用户将页面导出为 word 文档时,页面的其他功能就消失了。例如,您不能单击另一个 ASP 控件,因为结束 Response 对象会终止 ASP 控件与 DLL 的连接。因此,正如您从注释代码中看到的那样,我一直在调用一些 Response 对象函数,但在 Export 操作之后我仍然无法管理其他 ASP 控件工作。那么,我该如何管理呢?

提前致谢。

最佳答案

您出现此行为是因为您正在更改当前页面的响应对象。由于页面回发,响应对象用于呈现最新的页面内容,现在是 Word 二进制内容。

我建议您执行以下操作之一:

  • 打开一个新页面,在新页面上执行上述代码,推送Word文档
  • 有一个 iframe(您可能不想显示它)并将源设置为将推送 Word 内容的页面。这将使您可以留在当前页面上而不会干扰流程。

关于c# - 导出文档后响应关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5927765/

相关文章:

c# - 创建 BitmapImage 并为其应用特定的 Color

c# - 如何将 Azure AD 身份验证应用程序从开发计算机移动到服务器?

.net - asp :GridView textbox always return blank value

c# - 与本地模拟器发生连接错误

C# 如何通过反射设置 StructLayoutAttribute.Pack?

Python 按顺序将 2 个列表和 Pandas DataFrame 写入 csv/excel

excel - 导出到 Excel 无法正确显示数字

delphi - Excel 调试技巧

javascript - 开 BLUR 不开火

ASP.NET - 服务器端控制和 JavaScript 交互