我有一个带有更新面板和一些代码隐藏事件处理程序的 asp.net 网络表单来处理部分回发。在这种情况下,一旦页面被浏览器部分呈现,Sys.WebForms.PageRequestManager.getInstance.add_endRequest 方法就会被执行。
问题是,当我将 Response.Redirect 行放入其中一个事件的代码隐藏中时,Sys.WebForms.PageRequestManager.getInstance.add_endRequest 事件不会执行。因此,页面完成执行后,繁忙的动画会继续显示。
特别是,我的代码隐藏事件处理程序将用户重定向到一个文件,这有效地导致浏览器下载该文件。只要该文件是图像文件,整个事情就可以正常工作,因为图像显示在浏览器的同一窗口中。当文件是浏览器要在 ms office 中打开的 ms office 文件时,就会出现问题。用户在对话框中点击“打开”或“保存”,文件在ms office中打开或保存在文件系统中,但由于没有执行Sys.WebForms.PageRequestManager.getInstance.add_endRequest,页面一直处于忙碌状态。