Frage

Ich habe mehrere Seiten die gleiche Teilansicht enthält. Die teilweise enthält eine Form, die Beiträge zu einer Aktion. Nach einem Beitrag möchte ich auf die Seite zurückzukehren ich vor dem Posten war. Was ist der beste Weg, dies zu tun?

Beispiel:

Teilansicht: Form-Post action = Note / create /

Seiten

page1: Produkte / index /

page2: Kunde / details /

page3: Bestellung / details /

Diese drei Seiten, um die Teilansicht enthalten, wenn die teilweise Entsendung es zu beachten, Umleitungen / create /. Ich muss auf die Originalseite auf Erfolg zurück.

Danke Simon

War es hilfreich?

Lösung

Entweder haben die Post über AJAX passieren - also nicht die Seite verlassen, oder den aktuellen Controller / Aktion übergeben / id (oder die URL als Ganzes) als Parameter für die Aktion, die den Posten übernimmt. Siehe unten für ein Beispiel für die später.

 <% 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...
 <% } %>

oder

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

  ....
 <% } %>

Andere Tipps

Sie können speichern Sie die aktuelle Seitenadresse in einem versteckten Feld und es mit Gesuche senden.

Ihre Teilansicht:

<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>

abrufen dann die Adresse des verborgenen Eingang und leiten den Benutzer zu.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top