C# ASP.NET Response.AddHeader关闭窗口

C# ASP.NET Response.AddHeader关闭窗口,c#,asp.net,C#,Asp.net,我在页面上有一个asp.net超链接,单击该超链接可在新窗口中打开新页面: lnkPrint.NavigateUrl = blah blah; lnkPrint.Target = "_blank"; 在这个新页面中有一个UserControl,它使用OpenXML创建Word文档。我试图在不关闭新窗口的情况下向用户显示单词doc。但是,窗口只向用户显示文档,并关闭窗口,返回带有超链接的页面 HttpContext.Current.Response.ClearContent(); HttpCon

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

lnkPrint.NavigateUrl = blah blah;
lnkPrint.Target = "_blank";
在这个新页面中有一个UserControl,它使用OpenXML创建Word文档。我试图在不关闭新窗口的情况下向用户显示单词doc。但是,窗口只向用户显示文档,并关闭窗口,返回带有超链接的页面

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调用另一个选项卡(下载本身)。

这不是因为
HttpContext.Current.Response.Close()是的,我试着去掉最后两行,但似乎没有帮助我不明白这里的问题。。。如果您的navigateurl与您描述的一样,则页面应在新窗口/选项卡中打开。也许我误解了什么?我想这取决于浏览器。基本上,浏览器将响应视为一个“文件”(通过
内容处置
标题),并且足够聪明,知道没有要显示的UI,因此它关闭新窗口/选项卡,只显示文件保存对话框。也许客户端有问题。你有没有试过用不止一个客户来测试这个?谢谢Alexander,这就是我要做的