Javascript不能在使用ajax的response.redirect上工作ASP.Net

问题描述:

我将ASP.Net页面重定向到下载页面,并使用ajax。重定向页面确实起作用,文件被下载并且显示了称为下载的页面。我需要在下载文件后调用javascript以删除等待的屏幕。Javascript不能在使用ajax的response.redirect上工作ASP.Net

我第一次打电话给redirect,然后javascript打开UI。阻止用户界面,我正在使用onclientclick ='block()';

Response.Redirect("ExportFile.aspx, false); 
ScriptManager.RegisterClientScriptBlock((this), this.GetType(), "alertAction", "alert('');unblock();", true); 

即使警报不工作,所以JS根本没有被解雇。我厌倦了将代码放在文件下载页面上,但这也不起作用。我甚至尝试过身体onpageunload但是从来没有开火。

我该如何重定向到文件下载页面,然后调用JS来解锁UI?

+0

我不知道但如果你将重定向用户,这是不寻常的块整个页面。 –

+0

问题没有解决。我打电话给jquery block Ui。将页面变成透明黑色。现在我需要解锁它,但我无法得到任何JS发射。 –

一旦发生response.redirect,则不能执行其他代码。 我建议在JavaScript中编写重定向代码并将其放入RegisterClientScriptBlock中。只要确保unblock在window.location之前。

ScriptManager.RegisterClientScriptBlock((this), this.GetType(), "alertAction", "unblock(); window.location.assign('yourPage.aspx');", true); 
+0

我确实尝试过,但确实有效,但首先解锁的代码会先触发,然后网页开始下载。数据来自wcf服务,大约需要20秒。由于解除阻止代码被激发,用户将看不到任何内容,直到文件准备就绪。 –

+0

当文件准备就绪时,你可以启动一个javascript函数吗?或使用自定义事件?然后,您可以使用“RegisterClienScriptBlock”函数设置侦听器,一旦文件准备就绪,它就会解锁页面。 – SeanKendle

+0

WCF服务获取数据后,我在导出页面的页面加载过程中完成,但是在数据准备好保存并且没有激发js后,该页面消失。 –

boruchsiper是正确的。另外,一旦你重定向了他们,你就在另一个页面上(如果我的假设是正确的,你将重定向到不同的页面)。您想在新的页面抵达后,火过这一行,所以你会希望它在该页面的代码背后的Load()功能:

ScriptManager.RegisterClientScriptBlock((this), this.GetType(), "alertAction", "alert('');unblock();", true);

您可能要包括在查询字符串重定向URL以告知该页面采取该操作。

+0

我也试过,我也将脚本管理器更改为启动脚本。即使Body = onunload也不会在导出页面上触发。 由于页面A重定向到下载文件页面,该页面甚至从未见过。出于某种原因下载文件或导出数据,您必须重定向页面 –