来自弹出窗口的Response.BinaryWrite和Response.Write

时间:2011-10-26 09:50:51

标签: asp.net download modal-dialog

我在一个模态窗口。

我有一个指向ashx文件的超链接。

这个ashx文件使用Response.BinaryWrite推送文件进行下载,然后我想关闭模式。

事情是那个

如果我使用

Response.BinaryWrite(myFile);
Response.("<script type='text/javascript'>window.close();</script>");

它不起作用。

如果我更不用说

Response.("<script type='text/javascript'>window.close();</script>");

它有效。

任何有解决方案的机构?

THX

2 个答案:

答案 0 :(得分:2)

不,没有解决方案,因为上面的线路做了两件不同的事情:

第一行基本上是将文件流式传输给用户。在用户响应出现的对话框(他选择保存或在屏幕上显示)之前,你无能为力。您似乎试图自动关闭用户的对话框,但无法从服务器端代码控制用户的浏览器。

第二行有效,因为您所做的只是发送指示浏览器窗口关闭的javascript代码。你不能在同一个响应流中交织这两件事。

答案 1 :(得分:1)

我认为你选择了错误的做法。 AFAIK您使用二进制写入向客户端发送二进制文件,即pdf 客户端不会理解您还在二进制流的末尾发送javascript。 您无法组合二进制数据和脚本