2009-07-07 13 views
59

Welchen Code benötigen Sie, um den Browser auf eine neue Seite mit einer ASPX-Seite umzuleiten?ASPX-Seite zum Umleiten auf eine neue Seite

Ich habe versucht, diese auf meiner Seite default.aspx:

<% Response.Redirect("new.aspx", true); %> 

oder

<%@ Response.Redirect("new.aspx", true); %> 

Und dies in einem Serverfehler geführt, die unbestimmt ist. Ich kann den Fehlercode nicht sehen; weil der Server nicht in meiner Kontrolle ist und die Fehler nicht öffentlich sind.

Bitte geben Sie alle notwendigen Code von Zeile 1 der Seite bis zum Ende, und ich würde es wirklich zu schätzen wissen.

Antwort

124
<%@ Page Language="C#" %> 
<script runat="server"> 
    protected override void OnLoad(EventArgs e) 
    { 
     Response.Redirect("new.aspx"); 
    } 
</script> 
+11

, was der Zweck ist, die 'base.OnLoad (e);' 'nach Response.Redirect (..) '? – Tapan

+0

Darin Ich weiß, es ist eine sehr alte Antwort, aber gibt es einen Grund für die "base.OnLoad"? – gdoron

+0

@gdoron Ich denke, es ist nur da, weil Visual Studio Autocomplete es einfügt, wenn Sie beginnen, die OnLoad-Methode zu schreiben. Es scheint auch ohne es zu funktionieren. –

11

Wenn Sie VB verwenden, müssen Sie das Semikolon löschen:

<% Response.Redirect("new.aspx", true) %> 
+3

Funktioniert auch gut für mich und es ist kürzer Antwort: – omarrr

21

Sie auch dies tun können, ist schlicht in html mit einem meta tag:

<html> 
<head> 
    <meta http-equiv="refresh" content="0;url=new.aspx" /> 
</head> 
<body> 
</body> 
</html> 
+0

Warum die Down-Abstimmung? – jrummell

+0

Ernsthaft, was ist mit den Down-Stimmen? Wenn alles, was Sie verwenden müssen, umleiten auf eine andere Seite, müssen Sie ASP.Net nicht verwenden.Wenn Sie einen Nagel und Sie fahren müssen könnte wählen zwischen einem normalen Hammer und Vorschlaghammer, die würden Sie wählen? Ich hoffe, Sie würden den normalen Hammer sagen. – jrummell

+3

Ich stimme Jackhammer. Pneumatische ist die einzige Möglichkeit zu fliegen. –

2

Auch wenn Sie Steuern Sie den Server nicht. Sie können die Fehlermeldungen weiterhin anzeigen, indem Sie der Datei Web.config in Ihrem Projekt die folgende Zeile hinzufügen (bewlow <system.web>):

<customErrors mode="off" /> 
3

Oder Sie können Javascript verwenden, um eine andere Seite zu umleiten:

<script type="text/javascript"> 
    function toRedirect() { 
     window.location.href="new.aspx"; 
    } 
</script> 

Rufen Sie diese toRedirect() Funktion vom Client (zB: Onload-Ereignis des Body-Tag) oder vom Server mit:

ClientScript.RegisterStartupScript(this.gettype(),"Redirect","toRedirect()",true); 
13

Darin's Antwort funktioniert gut. Es erstellt eine 302-Weiterleitung. Hier ist der Code geändert, so dass es eine permanente 301-Weiterleitung erstellt:

<%@ Page Language="C#" %> 
<script runat="server"> 
    protected override void OnLoad(EventArgs e) 
    { 
     Response.RedirectPermanent("new.aspx"); 
     base.OnLoad(e); 
    } 
</script> 
+0

Schön! Die SEO Jungs liebten das. – callisto

+0

Wow, das habe ich bis jetzt nicht gemacht. – furtive

+0

Bitte beachten Sie, dass dies .net Framework 4.0 und höher ist; nicht Framework 2 usw. Siehe http://msdn.microsoft.com/en-us/library/system.web.httpresponse.redirectpermanent.aspx – GlennG

0

Redirect aspx:

<iframe> 

    <script runat="server"> 
    private void Page_Load(object sender, System.EventArgs e) 
    { 
    Response.Status = "301 Moved Permanently"; 
    Response.AddHeader("Location","http://www.avsapansiyonlar.com/altinkum-tatil-konaklari.aspx"); 
    } 
    </script> 

</iframe> 
Verwandte Themen