c# - ASP.NET Response.AddHeader 关闭窗口

标签 c# asp.net

我在页面上有一个 asp.net 超链接,单击它会在新窗口中打开一个新页面:

lnkPrint.NavigateUrl = blah blah;
lnkPrint.Target = "_blank";

在这个新页面中有一个 UserControl,它使用 OpenXML 创建一个 Word 文档。我试图在不关闭新窗口的情况下向用户展示 Word 文档。然而,该窗口只是将文档呈现给用户并关闭返回到带有超链接的页面的窗口。

HttpContext.Current.Response.ClearContent();
HttpContext.Current.Response.ClearHeaders();
HttpContext.Current.Response.AddHeader("content-disposition", "attachment; filename=" +     masterFileName);
HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.UTF8;
HttpContext.Current.Response.TransmitFile(masterContainer);
HttpContext.Current.Response.Flush();
HttpContext.Current.Response.Close();

有谁知道新窗口关闭的原因以及如何让它保持打开状态?

谢谢,

最佳答案

由于你清除了内容,然后传输了一个文件,所以“页面”上没有任何东西可以显示。甚至没有页面。

如果你想打开一个新标签,在那里显示一条消息,然后开始下载,你必须让新页面通过 JavaScript 调用另一个页面(下载本身)。

关于c# - ASP.NET Response.AddHeader 关闭窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17068634/

相关文章:

c# - 需要 linq 查询只返回最后 100 个结果

c# - 由于使用 sitecore 的对象的当前状态,该操作无效

c# - 在 IIS Express 或其他 WebServer 上部署 ASP.NET MVC 应用程序?

asp.net - 域名变更后301重定向

ASP.NET:如何将对页面的访问限制为仅一个用户?

c# - 将数据网格绑定(bind)到另一个数据网格的选定项

c# - 在 Botframework V4 中扩展和链接对话框的正确方法?

c# - Yahoo OAuth 2.0 invalid_grant 颁发访问 token 时

c# - 带有列名称的 EF7 支架现有数据库 = 表名称

mysql - 使用MYSQL在asp.net gridview中显示一周的记录