it-swarm.com.de

Umleiten von einer ASP.NET-Seite zu einer anderen

Wie leite ich über eine Schaltfläche von einer ASP.NET-Seite zu einer anderen ("Webform2.aspx") um?

5
YProgrammer

Sie können mit Response.Redirect() von einer Seite zu einer anderen umleiten.

10
user746432

setze die PostBackUrl-Eigenschaft von button wie folgt:

button1.PostBackUrl= "Webform2.aspx";
8
Antonio Bakula

Persönlich würde ich dies mit clientseitigem Skript tun, wenn alles, was Sie tun möchten, das Laden einer neuen Seite ist, wenn auf eine Schaltfläche geklickt wird.

Sie könnten dafür eine JS-Bibliothek verwenden (z. B. jQuery), wie folgt:

jQuery

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

ASP.NET

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

Oder für eine spezielle ASP.NETesque-Methode können SieButton.PostBackUrlverwenden, wie Antonio vorschlägt. Dabei wird immer noch clientseitiges Skript verwendet, Sie müssen es jedoch nicht selbst schreiben. Der HTML-Code für die Schaltfläche wird wie folgt dargestellt:

<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" />

Wenn Sie andere Verarbeitungsschritte auf dem Server ausführen und anschließend umleiten müssen, verwenden Sie Response.Redirect("Webform2.aspx"); in Ihrem Click-Handler.

Wenn dies bei Ihnen nicht funktioniert, fügen Sie Ihrer Frage weitere Details hinzu, um zu erläutern, was passiert.

2
Town

Sie können mit dem folgenden Code zu einer anderen ASP.NET-Seite umleiten:

Response.Redirect("Webform.aspx");

Dies ist der einfachste Weg

2
G.Nader

Nun, es gibt viele Möglichkeiten. Response.Redirect, Server.Transfer, Javascript-Aufruf der Seite.

Javascript-Aufruf ist erforderlich, wenn Sie keine serverseitigen Aktionen für die Schaltfläche haben. onclick="javascript:window.location.href = Webform2.aspx?id='<%=Request.QueryString["id"]%>'"

Server.Transfer führt eine Umleitung auf der Serverseite durch. Das heißt, der Browser wird nach der Antwort von webform2 weiterhin angezeigt. Webform1.aspx leitet die Anforderung an webform2 weiter und webform2 gibt die Anforderung weiter. (Req = 1, Res = 1)

Response.Redirect: webform1 sendet eine Antwort, in der der Browser aufgefordert wird, eine neue Anfrage an webform2 zu senden. In diesem Fall ändert der Browser die URL, während er eine neue Anforderung an webform2 vornimmt. (Anforderung = 1 + 1, Res = 1 + 1)

Es gibt noch einen Weg, form.submit(), wenn Sie interessiert sind. Das traditionelle HTML-Formular senden.

Ich habe vergessen, das Beste von allem zu erwähnen, das seitenübergreifende Postback mit der PostBack-URL. http://aspdotnetcode.source-of-humor.com/TipsAndTricks/General/CrossPagePostbackAspNetCrossPagePostback.aspx

2
Raghav

Sie können folgenden Code verwenden:

protected void Button1_Click(object sender, EventArgs e) {
    Response.Redirect("default2.aspx");
}

Beachten Sie, dass default2.aspx der Name Ihrer zweiten Webseite ist und Sie

1
Mani Rana

Sowohl die Response.Redirect- als auch die Server.Transfer-Methode werden verwendet, um einen Benutzer von einer Webseite auf eine andere Webseite zu übertragen. Beide Methoden werden für den gleichen Zweck verwendet, es gibt jedoch die folgenden Unterschiede.

Die Response.Redirect-Methode leitet eine Anforderung an eine neue URL um und gibt die neue URL an, während die Server.Transfer-Methode für die aktuelle Anforderung die Ausführung der aktuellen Seite beendet und die Ausführung einer neuen Seite unter Verwendung des angegebenen URL-Pfads der Seite startet.

Sowohl Response.Redirect als auch Server.Transfer haben dieselbe Syntax wie:

Response.Redirect ("UserDetail.aspx"); Server.Transfer ("UserDetail.aspx");

Bevor ich auf weitere Punkte eingehe, möchte ich einige HTTP-Statuscodes erläutern, die für das Verständnis der grundlegenden Unterschiede zwischen diesen beiden wichtig sind. Die HTTP-Statuscodes sind die Codes, die der Webserver für die Kommunikation mit dem Webbrowser oder dem Benutzeragenten verwendet. Response.Redirect sendet eine HTTP-Anforderung an den Browser. Anschließend sendet der Browser diese Anforderung an den Webserver. Anschließend sendet der Webserver eine Antwort an den Webbrowser. Angenommen, Sie befinden sich auf der Webseite "UserRegister.aspx" und sie verfügt über eine Schaltfläche, die Sie zur Webseite "UserDetail.aspx" weiterleitet.

0
charan0493

Response.Redirect(string url) gibt einen 302 HTTP-Statuscode aus, der den client anweist, zu url umzuleiten. Der Browser gibt eine neue Anforderung für url aus und die URL ändert sich in der Adressleiste.

Server.Transfer(string path) beendet die Ausführung der aktuellen Seite und startet die Ausführung einer neuen Seite für die angegebene path, d. h. intern in IIS. Daher wird die URL in der Adressleiste des Browsers nicht geändert. Die Seite, auf die Sie übertragen, muss eine aspx Seite auf derselben Website sein.

Die Unterschiede sind subtil, aber wichtig. Eine einfache Möglichkeit, darüber nachzudenken, besteht darin, sich die Frage zu stellen, ob der Benutzer diese URL als Lesezeichen/Favorit speichern soll. Verwenden Sie Response.Redirect, wenn sich die URL geändert hat und zukünftige Besuche des Inhalts unter der neuen URL erfolgen sollen. Verwenden Sie Server.Transfer, wenn die URL korrekt und aktuell ist, Sie jedoch diesmal andere Inhalte anzeigen müssen - möglicherweise wird eine Fehlermeldung angezeigt, oder der Benutzer muss seine Anmeldeinformationen eingeben, um fortzufahren, oder es gibt einen anderen Grund, warum sich der Inhalt ändern sollte die URL sollte nicht.

Beide oben genannten Methoden können in der Ereignisbehandlungsroutine Click eines ASP.NET-Button-Steuerelements in Ihrem Code-Behind verwendet werden:

protected void Button1_Click(object sender, EventArgs e)
{
    Response.Redirect("Webform2.aspx");
      // OR
    Server.Transfer("Webform2.aspx");
}
0
Stephen Kennedy