2013-08-07 21 views
5

Utilizziamo Webform ASP.NET (non MVC).ASP.NET Response.Redirect per aprire una nuova finestra del browser?

La mia domanda è questa: È possibile aprire una nuova finestra del browser utilizzando un postback e quindi una certa varietà di Response.Redirect?

+1

Hai provato qualsiasi cosa? –

+0

Response.Redirect non può aprire un browser come Response.Redirect è il comando lato server e il browser non esiste sul server. Devi lanciare un codice javascript per aprire una nuova finestra come suggerito da @ JLC007 nella sua risposta. –

risposta

0

Risposta breve? No.

Risposta lunga:

ASP.NET è un framework lato server, mentre il concetto di finestre del browser è un lato client uno. Response.Redirect termina semplicemente inviando un'intestazione Location: [whatever the new url is] come parte del flusso di output. Succede solo che praticamente tutti i browser gestiscono quell'intestazione caricando l'url che si trova in quell'intestazione.

Il modo più indolore sarebbe utilizzare javascript sul postback per aprire la nuova finestra, come indicato nella risposta JLC007's. Un'altra opzione possibile è l'utilizzo dell'attributo target nel modulo di rendering.

+0

Suppongo che "breve" sia relativo, ma quando arriva la risposta più lunga? – Patrick

+0

Proprio ora. Sono sviato. – rossipedia

+0

Probabilmente utilizzerei un'altra fonte quando mi collego al target, ovvero [MDN] (https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form#attr-target). Anche se w3schools ha spesso informazioni valide, c'è la questione della qualità (http://www.w3fools.com/). – Patrick

6

Non ho riscontrato casi in cui Response.Redirect può navigare aprendo una nuova finestra.

Ecco un modo di fare che non si utilizza Response.Redirect che si può provare:

ScriptManager.RegisterStartupScript(this, typeof(string), "New_Window", "window.open('http://www.website.com', null, 'height=800,width=1280,status=yes,toolbar=yes,menubar=yes,location=no');", true); 
+0

È possibile aggiungere ''_blank'' al posto di' null', ma l'ho provato ed entrambi hanno lo stesso risultato. Si apre una nuova finestra. –

+0

Si noti che i browser possono trattare gli script eseguiti a caricamento della pagina in questo modo come avviati dalla pagina anziché attivati ​​dall'utente. Tali collegamenti possono essere bloccati dai popup-blockers. – Brian

0

Prova questa

ScriptManager.RegisterStartupScript(this, typeof(string), "openWindow", 
    "window.open('http://www.website.com', target="_blank", 
    'height=800,width=1280,status=yes,toolbar=yes,menubar=yes,location=no');", 
     true); 
+0

E questo è diverso dalla risposta di JLC007, come? – Patrick

+0

target è diverso ed è utile per aprire una nuova finestra – Amit

Problemi correlati