Pod Mays
Pod Mays

Reputation: 2593

Javascript alert() after Response.Redirect

I am calling this in my code behind:

(test.aspx)
Response.Redirect("~/Default.aspx");

I want to include a javascript alert after/before being redirected to Default.aspx, is it possible? I'm doing this because I'm passing a value to another page (test.aspx) and that page checks the db, if reader HasRow(), then redirect to Default.aspx.

Upvotes: 3

Views: 10821

Answers (3)

TBohnen.jnr
TBohnen.jnr

Reputation: 5129

The way to do that is display the alert with javascript and then do the redirect with javascript as well:

ScriptManager.RegisterStartupScript(this,this.GetType(),"Redit","alert('asdf'); window.location='" + Request.ApplicationPath + "Default.aspx';",true);

Upvotes: 5

Mel
Mel

Reputation: 3128

Lets take a look at what happens when you call response.redirect()

  1. Servers sends HTTP response 302 to browser including the url to navigate to
  2. browser doesn't display content of response and instead gets the content from the url specified
  3. if the request to the new url succeeds, then it is displayed.

Now looking at this, we can deduce that it is impossible to tell the browser to do a alert() from the page that issues the redirect because its content (if any) is discarded.

It is possible to accomplish what you want from the page that you are redirecting to. To do this, just check Request.UrlReferrer to check if you were redirected from the correct page, then display the alert when appropriate.

example:

  1. Page1 redirects to page2
  2. Page2 check if Request.UrlReferrer is equal to page1
  3. If equal, display alert
  4. If not, do nothing special

Another approach is do the alert first then do the redirect from javascript. window.location.href = newurl.

Upvotes: 4

Rafal T
Rafal T

Reputation: 339

if you have display something message on Defaul.aspx page you must declare it. Because when you use redirect your page is rendering from top. You must set before redirect Sesion state on something flag and on Default.aspx page you must insert section who been added when this Sesion state been set.

Upvotes: 0

Related Questions