其他分享
首页 > 其他分享> > 导出文档后响应关闭

导出文档后响应关闭

作者:互联网

我一直在尝试使用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内容推送到的页面.这样您就可以停留在当前页面上,而不会干扰流程.

标签:response-write,export-to-word,export-to-excel,asp-net,c
来源: https://codeday.me/bug/20191208/2091445.html