Come faccio a restituire alla stessa pagina esatto dopo la pubblicazione di un modulo?
-
20-09-2019 - |
Domanda
sto postando dati a una pagina chiamata process.aspx che gestisce una logica di business con il seguente codice:
<%@ Page Language="C#" %>
<%
MyData.process(Request);
Response.Redirect("")
%>
questa pagina sarò chiamando da una varietà di pagine. C'è qualche modo di sapere da quale pagina mia forma è stata presentata? Stavo pensando qualcosa del tipo di scrittura:
<form id="frmSystem" method="post" action="process.aspx?page=<%= %>">
Comunque non so cosa scrivere tra il <%= %>
per ottenere il nome della pagina corrente. Chiunque può aiutare per favore?
Soluzione
È possibile catturare l'URL della pagina chiamata e tenerlo in Session
o ViewState
per un uso successivo.
Per esempio, in Page_Load
,
Session["PreviousPage"] = Request.Url.ToString();
E poi nel vostro evento finale (forse Savebutton_Click o CloseButton_Click), si può fare un redirect in uno dei seguenti modi:
Server.Transfer(Session["PreviousPage"].ToString(), false);
o
Response.Redirect(Session["PreviousPage"].ToString(), false);
È anche possibile ottenere l'URL della pagina chiamante in questo modo:
Request.ServerVariables("HTTP_REFERER")
Altri suggerimenti
Si potrebbe passare in tramite una proprietà come la ReturnUrl
simile come una pagina di accesso funziona. Questa è una specie di come si sta facendo lassù.
Si potrebbe anche provare a utilizzare il HttpContext.Current.Request.UrlReferrer
per vedere che ti ha fatto.
È possibile utilizzare Request.UrlReferrer.OriginalString
per ottenere l'URI della pagina di riferimento.