ASP.NET Response.AddHeader关闭窗口

时间:2013-06-12 14:52:23

标签: c# asp.net

我在页面上有一个asp.net HyperLink,点击它会在新窗口中打开一个新页面:

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();

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

谢谢,

1 个答案:

答案 0 :(得分:0)

由于您清除了内容然后传输文件,因此“页面”上没有任何内容可供显示。甚至没有页面。

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