2013-08-07 19 views
5

Używamy formularzy sieci Web ASP.NET (nie MVC).ASP.NET Response.Redirect, aby otworzyć nowe okno przeglądarki?

Moje pytanie brzmi następująco: Czy można otworzyć nowe okno przeglądarki, korzystając z funkcji odświeżenia strony, a następnie z różnych opcji Response.Redirect?

+1

Czy próbowałeś niczego? –

+0

Response.Redirect nie może otworzyć przeglądarki jako Response.Redirect to polecenie po stronie serwera, a przeglądarka nie istnieje na serwerze. Musisz rzucić kod javascript, aby otworzyć nowe okno, jak sugeruje @ JLC007 w swojej odpowiedzi. –

Odpowiedz

0

Krótka odpowiedź? Nie

Długa odpowiedź:

ASP.NET to ramy po stronie serwera, natomiast pojęcie okna przeglądarki po stronie klienta jest jeden. Response.Redirect kończy właśnie wysyłanie nagłówka Location: [whatever the new url is] jako części strumienia wyjściowego. Tak się składa, że ​​prawie wszystkie przeglądarki obsługują ten nagłówek, ładując adres URL z tego nagłówka.

Najbardziej bezbolesnym sposobem byłoby użycie javascript na poczcie zwrotnej, aby otworzyć nowe okno, zgodnie z odpowiedzią podaną w JLC007's. Inną możliwą opcją jest użycie atrybutu target w renderowanym formularzu.

+0

Przypuszczam, że "wkrótce" jest względny, ale kiedy nadchodzi dłuższa odpowiedź? – Patrick

+0

Właśnie teraz. Zostałem odsunięty na boczny tor. – rossipedia

+0

Prawdopodobnie użyłbym innego źródła podczas łączenia z celem, a mianowicie [MDN] (https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form#attr-target). Mimo, że w3schools często posiada ważne informacje, istnieje kwestia jakości (http://www.w3fools.com/). – Patrick

6

Nie natknąłem się na przypadki, w których Response.Redirect może nawigować po otwarciu nowego okna.

Oto sposób robi to nie za pomocą Response.Redirect które można spróbować:

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

Możesz dodać ''_blank'' zamiast' null', ale testowałem i oba dają ten sam rezultat. Otwiera nowe okno. –

+0

Należy zauważyć, że przeglądarki mogą traktować skrypty uruchamiane podczas ładowania strony w ten sposób, że są uruchamiane na stronie, a nie inicjowane przez użytkownika. Takie linki mogą być blokowane przez wyskakujące okienka. – Brian

0

spróbować tej

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

A to różni się od odpowiedzi JLC007, jak? – Patrick

+0

cel jest inny i służy do otwierania nowego okna – Amit

Powiązane problemy