80 votes

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.

158voto

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

26voto

jrummell Points 23718

Vous pouvez aussi faire cela en clair avec une balise META :

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

19voto

Mikael Koskinen Points 2594

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>
 

14voto

wweicker Points 2262

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

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

2voto

SLaks Points 391154

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

 <customErrors mode="off" />
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X