0

我想知道是否有人知道防止页面被重定向的方法?我想在页面离开时捕获一个事件,然后在后面运行一些代码。如果后面的代码符合某些条件,则允许重定向,否则取消它。我知道其中一些可以通过 Javacript 完成,但我遇到的问题实际上是停止重定向。这是我所拥有的:

JavaScript:

<script type="text/javascript">
   window.onbeforeunload = confirmExit;

   function clickButton(getId) {
            var getBtn = document.getElementById(getId)
            getBtn.click()
        } 

   function confirmExit(e) {
       var btnId = document.getElementById("<%=btnConfirmExit.ClientId %>").id
       clickButton(btnId)
    }
 </script>  

后面的代码:

Protected Sub btnConfirmExit_click(ByVal sender As Object, ByVal e As EventArgs) Handles btnConfirmExit.Click
    'if something, cancel request

    'else
     ' let it go
end Sub

如果尝试使用:

Page.Response.End()

但这无济于事。有人有想法么?

谢谢

4

1 回答 1

0

如果您使用的是经典的 postBacks,则浏览器已经开始请求和侦听新页面,并且没有“没关系”的 HTTP 响应。即使你在某些情况下让它在某些浏览器上工作,它也会不一致且不可靠。

如果您必须在服务器端进行此验证/处理,我认为您想考虑使用 AJAX 请求。

我不是他们的粉丝,但在最坏的情况下,肮脏和肮脏且无需更改太多代码,您可以使用更新面板。在这里阅读:

更新信息: http: //msdn.microsoft.com/en-us/library/bb398864 (v=vs.100).aspx

较旧的链接,但很好的概述: http ://www.asp.net/ajax/documentation/live/overview/updatepaneloverview.aspx

于 2013-03-04T16:04:57.580 回答