开发者

Response.AddHeader in an ascx file

开发者 https://www.devze.com 2023-02-21 02:25 出处:网络
Is it possible to use the Response.AddHeader particularly Im 开发者_Go百科trying to use the \"Refresh\" of it. I need it to pause before it redirects but the place where the code is being ran is in a

Is it possible to use the Response.AddHeader particularly Im 开发者_Go百科trying to use the "Refresh" of it. I need it to pause before it redirects but the place where the code is being ran is in a ASCX in the codebehind. It does nothing when I have the following in my Codebehind:

HttpContext.Current.Response.AddHeader("Refresh", "6;URL=Default.aspx");

Any way I can redirect a user in the codebehind on a ascx page?


I don't know why that isn't working for you - it seems to be the right syntax to add the redirect to your HTTP header, and it works for me on several browsers. To debug this, you can run Fiddler or a similar tool to see the full HTTP response, and see if it's not making it to the header.

You may want to try reformatting slightly - the examples I've seen have a space between the semi-colon and the url, and url keyword in lower-case. I doubt this is the problem, but worth a try, if it's failing on specific browsers:

Refresh: 0; url=http://www.example.com/

An alternative approach, maybe easier to debug, is to use a meta tag instead of HTTP header, so it actually shows up in the markup. Something like:

var metaControl = new HtmlMeta
  {
    Content = "2;url=http://webdesign.about.com/",
    HttpEquiv = "refresh"
  };
Page.Header.Controls.Add(metaControl);

This will add a <meta> tag to your <head> section, which should have the desired effect.


Have you tried

if(today == "Friday")
{
   Response.Redirect("destination.aspx")
}

If that doesn't work, please be more specific about what you are trying to accomplish.

0

精彩评论

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