Como retorno à mesma página exata depois de postar um formulário?
-
20-09-2019 - |
Pergunta
Estou postando dados em uma página chamada Process.aspx que lida com alguma lógica de negócios com o seguinte código:
<%@ Page Language="C#" %>
<%
MyData.process(Request);
Response.Redirect("")
%>
Nesta página, ligarei de várias páginas. Existe alguma maneira de saber de qual página meu formulário foi enviado? Eu estava pensando em algo como escrever:
<form id="frmSystem" method="post" action="process.aspx?page=<%= %>">
No entanto, não sei o que escrever entre os <%= %>
Para obter o nome da página atual. Alguém pode ajudar por favor?
Solução
Você pode capturar o URL da página de chamada e segurá -lo em Session
ou ViewState
para uso posterior.
Por exemplo, em Page_Load
,
Session["PreviousPage"] = Request.Url.ToString();
E então, em seu evento final (talvez Savorton_Click ou CloseButton_Click), você pode redirecionar de qualquer uma dessas maneiras:
Server.Transfer(Session["PreviousPage"].ToString(), false);
ou
Response.Redirect(Session["PreviousPage"].ToString(), false);
Você também pode obter o URL da página de chamada desta maneira:
Request.ServerVariables("HTTP_REFERER")
Outras dicas
Você pode passar por meio de uma propriedade como a ReturnUrl
Semelhante, como funciona um sinal de sinal. É assim que você está fazendo isso lá em cima.
Você também pode tentar usar o HttpContext.Current.Request.UrlReferrer
Para ver quem o encaminhou.
Você pode usar Request.UrlReferrer.OriginalString
Para obter o URI da página de referência.