防止页面被重定向

时间:2013-03-04 15:54:15

标签: asp.net

我想知道是否有人知道如何防止页面被重定向?我希望在页面离开时捕获一个事件,然后运行一些代码。如果后面的代码符合某些条件,则允许重定向,否则取消它。我知道其中一些可以通过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()

但这没有任何作用。有人有什么想法吗?

由于

1 个答案:

答案 0 :(得分:0)

如果您使用的是经典的postBack,浏览器已经开始请求并监听新页面,并且没有“nevermind”HTTP响应。即使你在某些情况下让它在某些浏览器上运行,它也会不一致且不可靠。

如果您必须执行此验证/处理服务器端,我认为您希望使用AJAX请求。

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

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

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