سلام دوستان !

حتماً شما هم بسیاری از مواقع نیازمند شده اید که صفحه ای را به صورت مستقل و یا به صورت popup و یا با اندازه مشخص و ... باز کنید و با این مشکل موجه بوده اید و مجبر به استفاده از کد های جاوااسکریپت چون windows.open شده اید!
پس در بسیاری از مواقع که نیاز به این کار در حالت server side بوده است، بسیار به زحمت افتاده اید. کلاس زیر مشکل شما را حل خواهد کرد :

در ضمن دوستان توجه کنند که این کلاس توسط بنده نوشته نشده است !


public static class ResponseHelper
{
public static void Redirect(string url, string target, string windowFeatures)
{
HttpContext context = HttpContext.Current;
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 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);
}
}
}



حال می توان به راحتی از کلاس بالا به اشکال مختلفن استفاده کرد.
مثلاً :


ResponseHelper.Redirect("Arvan.ir", "_blank", "height=300,width=300");


دوستان توجه داشته باشند که از تمام option های زیر می توان استفاده کرد:


'height=300,width=300,top=200,left=250,status=no,t oolbar=no,menubar=no,location=no,titlebar=no'