响应。将AFTER调用重定向到JS Alert或Confirm

| 我正在使用VB.NET Web应用程序。当某人成功更改密码后,我想显示一条弹出消息,让他们知道密码已成功更改。他们单击确定后,我想将其重定向到主页。代码如下:
ClientScript.RegisterStartupScript(Me.GetType(), \"confirmScript\", \"ConfirmNewUser();\", True)
Response.Redirect(\"MainPage.aspx\")
为什么发生重定向,并且警报弹出窗口从不显示?     
已邀请:
尝试这个: 1)从后面的代码中删除Response.Redirect。 2)更改ConfirmNewUser函数,如下所示:
function ConfirmNewUser(){
    //Existing Code of ConfirmNewUser
    //New Code.
    var msg = \"Password changed successfully. Press OK to go to Home page Cancel to stay on current page.\";
    if(confirm(msg)){
        window.location.href = \"MainPage.aspx\";
    }

}
    
您正在调用重定向服务器端,您的脚本将永远无法运行。使用
window.location
进行重定向客户端,如下所示:
function ConfirmNewUser() {
  if(confirm(\"Your password has been changed, click OK to continue\")) {
    window.location = \"MainPage.aspx\"; //go to home page
  }
}
    
原因是因为所有服务器端处理都将在客户端之前进行。 一种解决方案是将\“ MainPage.aspx \”传递给客户端脚本,如下所示:
ConfirmNewUser(\'MainPage.aspx\');
然后,您的客户端脚本将必须采用URL参数:
function ConfirmNewUser(url) { ... }
并继续执行window.location:
...
if(confirm(...))
{
  window.location = url;
}
并从服务器代码中删除以下内容:
Response.Redirect(\"MainPage.aspx\")
    
Response.Redirect
设置Location http标头和302移动响应,浏览器将在看到后立即对其进行操作。由于标题位于内容之前,因此您的脚本永远不会被查看或解析。     

要回复问题请先登录注册