Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1887
  • Last Modified:

MessageBox not showing message before response.redirect happens

Our web app has multiple pages.  Default.aspx is meant to be the start page.  I'm trying to code something to guard against a user bookmarking another page such as Actions.aspx.  Session["intCaseID"] is set in the Default.aspx page so if it is null then the user must have bookmarked the Actions.aspx page.

The code below will transfer a user to Default.aspx but will not display the message box.  I expected the page to wait until the user had clicked the "OK" button before it executed the response.redirect.  Why did it not wait?

Thx,

Eric
if (Session["intCaseID"] == null)
        {
            Utility.MessageBox("Redirecting you to the start page...");
            Response.Redirect("Default.aspx");
        }

Open in new window

0
Eric3141
Asked:
Eric3141
  • 7
  • 5
1 Solution
 
Meir RivkinFull stack Software EngineerCommented:
what is Utility.MessageBox?is it windows.forms.MessageBox or a custom one?
0
 
Eric3141Author Commented:
The MessageBox method is contained in a custom class called Utility. The code is below.

public static class Utility
{

public static void MessageBox(string MyMessage)
{
//This method pops a message box onto the screen to display whatever
//text you pass into the method via the input parameter.
string ScriptString = "alert('" + MyMessage + "');";

System.Web.UI.Page page = HttpContext.Current.Handler as System.Web.UI.Page;
page.ClientScript.RegisterStartupScript(typeof(System.Web.UI.Page), "ClientScript", ScriptString, true);

}
0
 
Meir RivkinFull stack Software EngineerCommented:
try:

ClientScript.RegisterStartupScript(this.GetType(), "Alert", "alert('"+MyMessage +".');window.open('AnotherPage.aspx','_self');", true);
0
VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

 
Meir RivkinFull stack Software EngineerCommented:
sorry, u need to integrate the "redirect" in the script:

string ScriptString = "<scriptlanguage='JavaScript'>alert('" + MyMessage + "');window.location.href =
'Default.aspx';</script>";
page.ClientScript.RegisterStartupScript(typeof(System.Web.UI.Page), "ClientScript", ScriptString, true);

check http://bytes.com/topic/asp-net/answers/730759-show-alert-box-then-redirect
0
 
Eric3141Author Commented:
The first one you gave worked.  The 2nd one gave this error:
 The name 'page' does not exist in the current context  
0
 
Meir RivkinFull stack Software EngineerCommented:
just remove the 'page':
string ScriptString = "<scriptlanguage='JavaScript'>alert('" + MyMessage + "');window.location.href =
'Default.aspx';</script>";
ClientScript.RegisterStartupScript(typeof(System.Web.UI.Page), "ClientScript", ScriptString, true);
0
 
Eric3141Author Commented:
Now it says "A runtime error has occurred.  Do you wish to debug?"

If this is getting to be too much trouble for you I can just use the first suggestion you gave which worked though there was a slight hesitation before the redirect happened.
0
 
Meir RivkinFull stack Software EngineerCommented:
the runtime error occur cause i probably misspelled the script.
if the 1st suggestion works for you, and suit your needs than use it :)
0
 
Eric3141Author Commented:
I hate to ask now but what would the 2nd script (that gave the error) do that the first would not?  Were there any real advantages to it?
0
 
Meir RivkinFull stack Software EngineerCommented:
the 2nd suggestion simply use the 'Redirect.Response' in the javascript itself.
they both have the same result, no a meaningful difference either way.
0
 
Eric3141Author Commented:
Sedqwick:

I was able to take the first code you gave me and create a custom class so I can call this from multple pages.  Thanks for the help!


  public static void WrongSiteEntry()
  {
      //This method handles the case where someone has entered the site via a page other than
      //Default.aspx.  This happens when they bookmark one of the other pages besides Default.aspx.
      //It gives them a message box telling them they being redirected to the start page then
      //redirects them to Default.aspx

      string MyMessage = "Redirecting you to the start page...";
      string ScriptString = "alert('" + MyMessage + ".');window.open('Default.aspx','_self');";

      System.Web.UI.Page page = HttpContext.Current.Handler as System.Web.UI.Page;
      page.ClientScript.RegisterStartupScript(typeof(System.Web.UI.Page), "ClientScript", ScriptString, true);
  }
0
 
Meir RivkinFull stack Software EngineerCommented:
glad it was helpful. :)
0

Featured Post

Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

  • 7
  • 5
Tackle projects and never again get stuck behind a technical roadblock.
Join Now