开发者

Response.Redirect AFTER call to JS Alert or Confirm

开发者 https://www.devze.com 2023-02-25 11:58 出处:网络
I am working on a VB.NET web application. When someone successfully changes their password I want to show a popup message that lets them know it was changed successfully. After they click OK I want to

I am working on a VB.NET web application. When someone successfully changes their password I want to show a popup message that lets them know it was changed successfully. After they click OK I want to redirect them to the main page. Code looks like this:

ClientScript.RegisterStartupScript(Me.GetType(), "confirmScript", "ConfirmNewUser();", True)
Response.Redirect("MainPage.aspx")

Why does the redirect happen and the alert po开发者_Go百科pup never displays?


Try this:

1) Remove Response.Redirect from the code behind.

2) Change the ConfirmNewUser function as given below:

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";
    }

}


You are calling the redirect server side, your script never get a chance to run. use window.location to do the redirect client side, something like this:

function ConfirmNewUser() {
  if(confirm("Your password has been changed, click OK to continue")) {
    window.location = "MainPage.aspx"; //go to home page
  }
}


The reason is because all server-side processing will take place prior to client-side.

One solution would be to pass "MainPage.aspx" to your client script as follows:

ConfirmNewUser('MainPage.aspx');

Your client script would then have to take a URL parameter:

function ConfirmNewUser(url) { ... }

and follow up with a window.location:

...
if(confirm(...))
{
  window.location = url;
}

and remove the following from your server code:

Response.Redirect("MainPage.aspx")


Response.Redirect sets the Location http header and a 302-Moved response, the browser will act upon this as soon as it sees it. As headers come before content, your script is never seen or parsed.

0

精彩评论

暂无评论...
验证码 换一张
取 消