Question

J'ai plusieurs pages contenant la même vue partielle. La partie contient une forme que les postes à une action. Après un poste que je veux revenir à la page que j'étais avant le poste. Quelle est la meilleure façon de le faire?

Exemple:

Vue partielle: form action post = note / créer /

Pages

page1: produits / index /

page2: client / détails /

page3: commande / détails /

Ces 3 pages contiennent la vue partielle, lors de la publication de la partie, il réoriente de noter / créer /. Je dois revenir à la page originale sur le succès.

Merci Simon

Était-ce utile?

La solution

ont soit le poste arrive via AJAX - donc pas quitter la page, ou passer le régulateur de courant / action / id (ou l'URL dans son ensemble) en tant que paramètres à l'action qui gère le poste. Voir ci-dessous un exemple de plus tard.

 <% using (Html.BeginForm(...)) { %>

      <input type='hidden'
             name='currentController'
             value='<%= ViewContext.RouteData["controller"] %>' />
      <input type='hidden'
             name='currentAction'
             value='<%= ViewContext.RouteData["action"] %>' />
      <input type='hidden'
             name='<%= ViewContext.RouteData["id"] %>' />

      ...rest of form...
 <% } %>

ou

 <% using (Html.BeginForm( ...,
         new { ReturnUrl = Url.Action( ViewContext.RouteData["action"],
                                       ViewContext.RouteData ) }, ... )) { %>

  ....
 <% } %>

Autres conseils

Vous pouvez mémoriser l'adresse de la page courante dans un champ caché et l'envoyer à la demande Post.

Dans votre vue partielle:

<script type="text/javascript">

var field = document.getElementById("currentPage");
field.value=document.location.href;

</script>

<form method="post" action="note/create/">
...

<input type="hidden" value="" id="currentPage" name="currentPage" />
</form>

Ensuite, récupérer l'adresse de l'entrée cachée et rediriger l'utilisateur vers lui.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top