C# ASP.NET-下载文件后如何回发页面?

C# ASP.NET-下载文件后如何回发页面?,c#,javascript,asp.net,C#,Javascript,Asp.net,以下是我的情况: 用户单击链接按钮,页面将进行回发。但同时我还需要提示用户下载一个文件 为了做到这一点,我在LinkButton上做了这个 lnkPrint.Attributes.Add("onclick", "window.open('Download.ashx?type=x')"); 添加(“onclick”、“window.open('Download.ashx?type=x'); Download.ashxHttp处理程序生成文件(内容类型:application/pdf),如果我单击我

以下是我的情况:

用户单击链接按钮,页面将进行回发。但同时我还需要提示用户下载一个文件

为了做到这一点,我在LinkButton上做了这个

lnkPrint.Attributes.Add("onclick", "window.open('Download.ashx?type=x')"); 添加(“onclick”、“window.open('Download.ashx?type=x'); Download.ashxHttp处理程序生成文件(内容类型:application/pdf),如果我单击我的链接按钮,它会在显示弹出窗口后回发并下载文件。。。但是我无法自动关闭这个弹出窗口

我试过一些方法

  • 下载后设置超时('self.close(),1000)
  • 在LinkButton.Command上设置RegisterStartupScript,以在回发后触发下载,但IE6会提示一条警告,这会干扰我的用户
因此,这些方法似乎都不管用

所以,我的问题是:有没有办法让弹出窗口立即消失,或者有没有办法让页面同时下载文件和回发


PS:我想到了您的下载将很快开始的方法,但我担心RegisterStartupScript会出现与以前相同的问题…

如果您想立即关闭窗口,您真的需要该窗口吗?你就不能这样做:


没有弹出窗口,如果内容配置设置为附件,则不会将用户重定向到空白页。

为什么不进行正常回发,然后进行响应,下载文件?只需执行Response.BinaryWrite()。。。并使用Response.ContentType
此外,您还可以将内容处置标题设置为您选择的文件名。

我需要知道用户是否单击了链接按钮,因此我必须获取命令事件。不幸的是,如果我在download.ashx上重定向,该页面将不会回发。我不完全理解-为什么该页面必须回发?这不起作用,因为下载页面将结束响应。换句话说,我不能同时有一个application/pdf响应和一个postback响应。我有同样的问题。你找到解决办法了吗?