web-dev-qa-db-fra.com

Comment puis-je rediriger vers une URL?

Comment puis-je rediriger le spectateur vers une URL?

J'ai remarqué que quelqu'un a demandé Comment rediriger vers une autre page Web en JavaScript/jQuery? , mais je ne sais pas exactement où cela devrait aller.

J'ai essayé dans le contrôleur avec:
window.location.replace("http://192.168.1.109/MWT/Taglist/ShowMap" + LastId);
et dans la vue avec:

<% if (BreakCount >= 8) {  
    var url = "http://192.168.1.109/MWT/Taglist/ShowMap" + LastId;  
    window.location.replace(url);  
} %>  

Aucun de ces travaux. Aux deux endroits, window a une ligne rouge ondulée en dessous et quand je la survole, le message dit "Le nom 'fenêtre' n'existe pas dans le contexte actuel."

Toute aide serait grandement appréciée!

= D

29
Dracco1993

Votre question est taguée MVC 3, donc je vais vous donner la réponse malgré cet exemple JavaScript que vous avez listé. Dans votre classe de contrôleur, utilisez ce code:

public ActionResult MyAction()
{
    // Use this for an action
    return RedirectToAction("ActionName");
    // Use this for a URL
    return Redirect("http://192.168.1.109/MWT/Taglist/ShowMap" + LastId);
}

Cela se produit sur le serveur, ce qui signifie que le navigateur client reçoit une réponse de redirection pour laquelle le navigateur soumettra probablement une demande supplémentaire. Si vous renvoyez une page avec JavaScript, elle devra charger une page, exécuter le JavaScript (en supposant qu'il est activé sur le navigateur du client), charger la page suivante. Entre autres problèmes, l'utilisation de JavaScript signifie que si l'utilisateur appuie sur le bouton de retour, il sera redirigé à plusieurs reprises vers la page sur laquelle il se trouve actuellement.

71
Paul

Dans votre contrôleur, appelez return RedirectToAction().

public ActionResult MyAction() {

    return RedirectToAction("Index", "Home");
}

ou, si vous l'utilisez T4MVC (et vous devriez ;-))

public ActionResult MyAction() {

    return RedirectToAction(MVC.Home.Index());
}

Ne mettez pas l'instruction if dans la vue - ce n'est pas la façon MVC. Il est de la responsabilité du contrôleur de décider de rediriger vers une autre vue.

6
Jakub Konecki

Essayez comme ceci:

<script type="text/javascript">
    // Make sure the LastId variable is defined
    var LastId = '123';
    <% if (BreakCount >= 8) { %>
        var url = "http://192.168.1.109/MWT/Taglist/ShowMap" + LastId;
        window.location.replace(url);
    <% } %>
</script>
4
Darin Dimitrov

Essaye ça:

 <script type="text/javascript">
   var id = '123';
   location.href = "http://192.168.1.109/MWT/Taglist/ShowMap/" + id;
 </script>
1
Shrikant D