Third approach(Extension method)
public static class ResponseHelper {
public static void Redirect(this HttpResponse response,
        string url,        string target,        string windowFeatures) {if ((String.IsNullOrEmpty(target) ||
target.Equals("_self",
StringComparison.OrdinalIgnoreCase)) &&
String.IsNullOrEmpty(windowFeatures)) {
            response.Redirect(url);}
        else {Page page = (Page)HttpContext.Current.Handler;
if (page == null) {
throw new InvalidOperationException(
                    "Cannot redirect to new window outside
                    Page context.");}
url = page.ResolveClientUrl(url);
            string script;if (!String.IsNullOrEmpty(windowFeatures)) {
script = @"window.open(""{0}"", ""{1}"",
""{2}"");";
}
            else {script = @"window.open(""{0}"", ""{1}"");";
}
script = String.Format(script, url, target,
windowFeatures);
            ScriptManager.RegisterStartupScript(page,                typeof(Page),                "Redirect",script,
                true);}
}
}
Note the 'this' keyword in the first parameter.
Now whenever we include the namespace this class
is defined within, we get a nice override on the
actual Response object.

 
 
 
 
No comments:
Post a Comment