2009-03-19 11 views

Répondre

3

Malheureusement vous ne pouvez pas le faire à partir du serveur, vous devrez utiliser le code côté client pour créer une nouvelle fenêtre du navigateur. Vous pouvez le faire avec la fonction Javascript window.open. Une façon de le faire serait d'intégrer l'URL que vous souhaitez envoyer à l'utilisateur dans une entrée cachée, puis lorsque les rendus de page ont une fonction Javascript qui vérifie cette entrée pour une valeur et si elle en a trouvé une ferait l'appel window.open.

5

Ceci est une question assez courante, et la réponse est que vous ne pouvez pas. La raison en est qu'il est déjà décidé lorsque le navigateur envoie la requête au serveur sur lequel la page sera chargée. Ainsi, lorsque le code commence à s'exécuter sur le serveur, il est trop tard pour modifier l'emplacement de chargement de la page.

Vous pouvez ajouter javascript à la page qui va ouvrir une nouvelle fenêtre, mais vous devez toujours renvoyer une page au navigateur en réponse à la demande (ie vous ne pouvez pas laisser la page actuelle dans le navigateur, comme le navigateur a déjà demandé une page pour le remplacer).

ClientScript.RegisterStartupScript(this.GetType(), "aspnet", "window.open('http://www.asp.net','_blank');", true); 
+0

+1 Merci pour l'idée. J'ai également trouvé cette solution plus complexe: http://weblogs.asp.net/infinitiesloop/archive/2007/09/25/response-redirect-into-a-new-window-with-extension-methods.aspx –

Questions connexes