Jak przekierować z jednej strony ASP.NET do innej


Jak przekierować z jednej strony ASP.NET do innej („Webform2.aspx”) za pomocą przycisku?
Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Możesz przekierować z jednej strony na drugą za pomocą
Response.Redirect ()
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

ustawić właściwość PostBackUrl przycisku, na przykład:
button1.PostBackUrl= "Webform2.aspx";
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Cóż, jest wiele sposobów.
Response.Redirect
,
Server.Transfer
, Javascript wywołanie strony.
Wywołanie Javascript jest wymagane, jeśli przycisk nie ma działania po stronie serwera.
onclick = "javascript: window.location.href = Webform2.aspx? Id = '& <% = Request.QueryString [" id "]% & > „

Server.Transfer
dokona ponownego przekierowania po stronie serwera. to znaczy, przeglądarka będzie nadal wyświetlać po odpowiedzi z webform2. Webform1.aspx przekieruje żądanie do webform2, a webform2 wygeneruje req. (Wym. = 1, Rozdziel. = 1)
Response.Redirect
: webform1 wyśle ​​odpowiedź z prośbą do przeglądarki o wysłanie nowego żądania do webform2. W takim przypadku przeglądarka zmieni adres URL, ponieważ tworzy nowe żądanie dla formularza internetowego 2. (Wymagane = 1 + 1, Rozdzielczość = 1 + 1)
Jest inny sposób,
form.submit ()
, jeśli jesteś zainteresowany. Prześlij tradycyjny formularz HTML.
Zapomniałem wspomnieć o najlepszej rzeczy - ogłaszaniu zwrotnym na wielu stronach z adresem URL PostBack.

http://aspdotnetcode.source-of ... .aspx
http://aspdotnetcode.source-of ... .aspx
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Osobiście zrobiłbym to za pomocą skryptu po stronie klienta, jeśli wszystko, co chcesz zrobić, to załadować nową stronę po kliknięciu przycisku.
Możesz do tego użyć biblioteki JS (takiej jak jQuery), na przykład:

jQuery

$(function() {
$('#<%= button1.ClientID %>').click(function() {
window.location.href = "Webform2.aspx";
});
});


ASP.NET

<asp:Button id="button1" runat="server"/>

Lub, w sposób specyficzny dla ASP.NETesque, możesz użyć
Button.PostBackUrl

jak sugeruje Antonio, który nadal używa skryptu po stronie klienta, ale oznacza, że ​​nie musisz go pisać samodzielnie. Kod HTML przycisku jest renderowany w następujący sposób:
<input type="submit" name="button1" value="Button" onclick="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(&quot;button1&quot;, &quot;&quot;, true, &quot;&quot;, &quot;webform2.aspx&quot;, false, false))" id="button1"/>

Jeśli masz inne przetwarzanie po stronie serwera, a potem musisz przekierować, użyj
Response.Redirect ("Webform2.aspx");
w module obsługi kliknięć.
Jeśli to nie zadziała, dodaj trochę więcej szczegółów do pytania, aby wyjaśnić, co się dzieje.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Możesz przekierować do innej strony ASP.NET przy użyciu poniższego kodu:
Response.Redirect("Webform.aspx");

To najłatwiejszy sposób
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Możesz użyć poniższego kodu:
protected void Button1_Click(object sender, EventArgs e) {
Response.Redirect("default2.aspx");
}

Pamiętaj, że
default2.aspx
to drugie imię Twojej strony internetowej i Ciebie
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Response.Redirect(string url)
https://msdn.microsoft.com/en-us/library/t9dwyts4(v=vs.110).aspx
wysyła kod stanu HTTP 302 wskazujący

klient

przekieruj go do
url
. Przeglądarka wyśle ​​nowe żądanie
url
, a adres URL zmieni się na pasku adresu.
Server.Transfer(string path)
https://msdn.microsoft.com/en-us/library/y4k58xk7(v=vs.110).aspx
kończy wykonywanie bieżącej strony i rozpoczyna wykonywanie nowej strony w określonej
ścieżce
, tj.

wewnątrz

IIS. Dlatego adres URL w pasku adresu przeglądarki nie ulegnie zmianie. Strona, do której się wybierasz, musi być stroną

aspx

w tej samej witrynie.
Różnice są subtelne, ale ważne. Prostym sposobem na zastanowienie się nad tym jest zadanie sobie pytania „czy użytkownik powinien dodać ten adres URL do zakładek/ulubionych?” Użyj
Response.Redirect
, jeśli adres URL się zmienił, a przyszłe odwiedziny treści powinny odbywać się pod nowym adresem URL. Użyj
Server.Transfer
, jeśli adres URL jest poprawny i aktualny, ale tym razem musisz wyrenderować inną zawartość - być może wyświetlasz komunikat o błędzie lub potrzebujesz, aby użytkownik wprowadził swoje poświadczenia, aby kontynuować. Lub czy jest jakiś inny powód, dla którego zawartość powinna się zmienić, a adres URL nie powinien.
Dowolnego z powyższych można użyć w obsłudze zdarzeń
Click
kontrolki przycisku ASP.NET w kodzie:
protected void Button1_Click(object sender, EventArgs e)
{
Response.Redirect("Webform2.aspx");
// OR
Server.Transfer("Webform2.aspx");
}
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Obie metody Response.Redirect i Server.Transfer służą do przenoszenia użytkownika z jednej strony internetowej na drugą. Obie metody są używane w tym samym celu, ale nadal istnieją pewne różnice, które opisano poniżej.
Metoda Response.Redirect przekierowuje żądanie do nowego adresu URL i określa nowy adres URL, natomiast metoda Server.Transfer dla bieżącego żądania kończy wykonywanie bieżącej strony i rozpoczyna wykonywanie nowej strony przy użyciu określonej ścieżki URL strony.
Zarówno Response.Redirect, jak i Server.Transfer mają tę samą składnię, na przykład:
Response.Redirect("UserDetail.aspx");
Server.Transfer("UserDetail.aspx");
Zanim przejdę do innych punktów, chcę wyjaśnić niektóre kody stanu HTTP, są one ważne dla zrozumienia głównych różnic między nimi. Kody stanu HTTP to kody używane przez serwer WWW do komunikacji z przeglądarką internetową lub agentem użytkownika.
Response.Redirect wysyła żądanie HTTP do przeglądarki, następnie przeglądarka wysyła to żądanie do serwera WWW, a następnie serwer WWW dostarcza odpowiedź do przeglądarki internetowej. Na przykład załóżmy, że znajdujesz się na stronie internetowej UserRegister.aspx i ma ona przycisk, który przekierowuje Cię do strony internetowej UserDetail.aspx.

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się