web-dev-qa-db-fra.com

aspx page pour rediriger vers une nouvelle page

Quel est le code requis pour rediriger le navigateur vers une nouvelle page avec une page ASPX?

J'ai essayé ceci sur ma page default.aspx:

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

ou

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

Et cela a entraîné une erreur de serveur indéterminée. Je ne peux pas voir le code d'erreur; parce que le serveur n'est pas sous mon contrôle et que les erreurs ne sont pas publiques.

Veuillez fournir tout le code nécessaire, de la ligne 1 à la fin de la page, et je l’apprécierais vraiment.

67
Stoob
<%@ Page Language="C#" %>
<script runat="server">
  protected override void OnLoad(EventArgs e)
  {
      Response.Redirect("new.aspx");
  }
</script>
135
Darin Dimitrov

Vous pouvez également le faire en clair avec un méta tag :

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

La réponse de Darin fonctionne très bien. Cela crée une redirection 302. Voici le code modifié pour créer une redirection 301 permanente:

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

Si vous utilisez VB, vous devez supprimer le point-virgule:

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

Ou vous pouvez utiliser javascript pour rediriger vers une autre page:

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

Appelez cette fonction toRedirect() à partir du client (par exemple: événement onload de la balise body) ou du serveur à l'aide de:

ClientScript.RegisterStartupScript(this.gettype(),"Redirect","toRedirect()",true);
3
Prasad Jadhav

Même si vous ne contrôlez pas le serveur, vous pouvez voir les messages d'erreur en ajoutant la ligne suivante au fichier Web.config de votre projet (bewlow <system.web>):

<customErrors mode="off" />
2
SLaks

Dans un cas particulier au sein d'ASP.NET Si vous voulez savoir si la page est redirigée par une page .aspx spécifiée et non par une autre, insérez simplement les informations dans un nom de session et prenez les mesures nécessaires dans l'événement Page_Load de destination.

0
marcob

Rediriger 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>
0
mad master