Response.Redirect apre la pagina in una nuova finestra

Per ottenere la funzionalià ricercata, si possono seguire due strade:

  1.  la prima prevede la configurazione della proprietà onclientclick del pulsante con lo script “aspnetForm.target =’_blank’;”, ottenendo così onclientclick=”aspnetForm.target =’_blank’;”
  2.  la seconda permette di utilizzare una classe ad-hoc per effetuare il redirect tramite un metodo dedicato, di cui si riporta il codice
public static class ClassMyResponseRedirect
{
    static ClassMyResponseRedirect()
	{
		//
		// TODO: Add constructor logic here
		//
	}
 
 
    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(
                    "La pagina scelta non è raggiungibile.");
            }
            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);
        }
    }
	//(estrapolato da http://www.codeproject.com)
}

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Non sono una macchina... *