2012-11-26 5 views
0

J'ai une action post en cas de succès, je veux rediriger l'utilisateur vers un autre site Web. ceci est mon code d'action:Rediriger vers un autre site Web à partir de l'action

[HttpPost] 
    public ActionResult RegistartionComplete(Customer customer) 
    { 
     if (ModelState.IsValid) 
     { 
      db1.Entry(customer).State = EntityState.Modified; 
      db1.SaveChanges(); 
      return Redirect(@"http://www.google.com"); 
     } 
     return View(customer); 
    } 

le problème est que, après la db1.SaveChanges() est exécutée Je suis en train redirigé vers la même page (selon l'URL), mais avec un message Internet Explorer cannot display the webpage. lors du test avec un point de rupture je vois que le return Redirect(@"http://www.google.com"); est exécuté mais il me renvoie juste à la même vue d'action.

+0

Est-ce que vous redirigez vraiment vers google.com ou est-ce juste pour illustrer ici? Avez-vous confirmé avec Fiddler (ou avec l'onglet Réseau des outils de développement du navigateur, etc.) que la redirection ne s'est pas réellement produite? Je crois que certains navigateurs ne mettront pas à jour l'URL lorsqu'une redirection mène à une page qui ne se charge pas. Donc, si votre destination ne se charge pas (ce que vous pourriez voir dans Fiddler, etc), vous obtiendrez le comportement que vous décrivez. –

+0

Êtes-vous sûr que db1.SaveChanges() ne lève pas une exception? – Mariusz

+0

@Erv actuellement à des fins de test je redirige vers google. c'est le code exact que j'utilise. @Mariusz la commande 'SaveChanges()' ne lance aucune erreur (l'a essayée aussi avec 'try \ catch'). – Yoav

Répondre

0

Il semble que tout devrait fonctionner comme prévu, et a bien fonctionné dans mon test. Je suggère d'essayer ce qui suit:

  • Essayez la redirection sans changer l'état de l'entité et enregistrez. Faites simplement la redirection si le modèle est valide.
  • Eventuellement, essayez d'envelopper la vue de retour (client) dans un bloc ELSE. Je sais que cela ne devrait pas se produire si le modèle est valide, mais j'ai vu des choses plus folles se produire.
Questions connexes