2013-03-04 122 views
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() 

但这没什么。有人有主意吗?

感谢

+0

你不能做到这一点。 – SLaks 2013-03-04 15:55:26

回答

0

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

我想你想看看使用AJAX请求,如果你必须做这个验证/处理服务器端。

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

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

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