background image

if ((String.IsNullOrEmpty(target) || 
target.Equals("_self", StringComparison.OrdinalIgnoreCase)) && 
String.IsNullOrEmpty(windowFeatures)) 

context.Response.Redirect(url); 

else 

Page page = (Page)context.Handler; 
if (page == null) 

throw new 
InvalidOperationException("Cannot redirect to new window."); 

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); 
page.ClientScript.RegisterStartupScript(page.GetType(), 
"Redirect", script, true); 
} } } 

这样就可以在程序中使用

RedirectHelper.Redirect("oec2003.aspx", "_blank", "");第三个参数为

open 窗口的一些属性。但这样好像还不是很方便,在 .net3.5 中提供了扩展方法的特性,在
这里也可以借用一下,将上面的静态方法实现为

Response.Redirect 的一个重载。具体代码如

下:

 

复制代码

 代码如下:

public static class RedirectHelper 

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))