wie kann ich auf genau die gleiche Seite zurückzukehren, nachdem ein Formular veröffentlichen?
-
20-09-2019 - |
Frage
Ich poste Daten auf eine externe Seite process.aspx dass Griffe einige Business-Logik mit dem folgenden Code aufgerufen:
<%@ Page Language="C#" %>
<%
MyData.process(Request);
Response.Redirect("")
%>
Diese Seite werde ich aus einer Vielzahl von Seiten anrufen. Gibt es eine Möglichkeit zu wissen, von welcher Seite meines Formular abgeschickt wurde? Ich war etwas entlang der Linien des Schreibens denken:
<form id="frmSystem" method="post" action="process.aspx?page=<%= %>">
Allerdings weiß ich nicht, was zwischen dem <%= %>
schreiben in die aktuellen Seitennamen zu erhalten. Kann mir jemand bitte helfen?
Lösung
Sie können die anrufende Seite URL erfassen und halten Sie es in Session
oder ViewState
für die spätere Verwendung.
Zum Beispiel in Page_Load
,
Session["PreviousPage"] = Request.Url.ToString();
Und dann in Ihrem letzten Ereignis (vielleicht Savebutton_Click oder CloseButton_Click), können Sie in einem der folgenden Wege eine Umleitung tun:
Server.Transfer(Session["PreviousPage"].ToString(), false);
oder
Response.Redirect(Session["PreviousPage"].ToString(), false);
Sie können auch die URL der rufenden Seite auf diese Weise erhalten:
Request.ServerVariables("HTTP_REFERER")
Andere Tipps
Sie können in über eine Eigenschaft in es passieren wie das ReturnUrl
ähnlich wie ein Zeichen in Seite funktioniert. Dies ist eine Art, wie Sie es dort tun.
Sie können auch versuchen, die HttpContext.Current.Request.UrlReferrer
zu verwenden, um zu sehen, wer Sie bezeichnet.
Sie können Request.UrlReferrer.OriginalString
verwenden, um die URI der verweisenden Seite zu bekommen.