From time to time I have pages that need to auto-refresh or more commonly a page that automatically needs to go to another page after showing a short informational message. In the past I’ve always done this with Meta-Refresh tags in the page which looks like this:


<html xmlns="">


      Welcome Back


<meta http-equiv="Refresh" content="2; URL=/wwstore/Profile.aspx" />



You can add this into an ASP.NET page with code like this:


// *** Create META tag and add to header controls

HtmlMeta RedirectMetaTag = new HtmlMeta();

RedirectMetaTag.HttpEquiv = "Refresh";


RedirectMetaTag.Content = string.Format("{0}; URL={1}", this.Context.Items["ErrorMessage_Timeout"], NewUrl);



But I never put 2 and 2 together to realize that the meta tag is actually mapping an HTTP header. A much easier way to do this is to simply add a header:

Response.AppendHeader("Refresh", "4");


Or refresh and go off to another page:


Response.AppendHeader("Refresh", "4; url=profile.aspx");


Duh… much cleaner. One advantage of the Meta tag approach is that if somebody bookmarks the page the Meta-Refresh will still fire even on a page that is browser cached, while the HTTP header most likely wouldn’t.


Ah, the little obvious things one overlooks sometimes…