comment puis-je revenir à la même page exacte après avoir affiché un formulaire?
-
20-09-2019 - |
Question
Je souhaite publier des données sur une page appelée process.aspx qui gère une logique d'affaires avec le code suivant:
<%@ Page Language="C#" %>
<%
MyData.process(Request);
Response.Redirect("")
%>
ce que je vais demander à partir d'une variété de pages. Est-il possible de savoir à partir de quelle page mon formulaire a été envoyé? Je pensais quelque chose le long des lignes d'écriture:
<form id="frmSystem" method="post" action="process.aspx?page=<%= %>">
Cependant, je ne sais pas quoi écrire entre le <%= %>
pour obtenir le nom de la page courante. Quelqu'un peut-il aider s'il vous plaît?
La solution
Vous pouvez capturer la page d'appel URL et maintenez-le dans Session
ou ViewState
pour une utilisation ultérieure.
Par exemple, dans Page_Load
,
Session["PreviousPage"] = Request.Url.ToString();
Et puis dans votre dernier événement (peut-être Savebutton_Click ou CloseButton_Click), vous pouvez faire une redirection dans l'une des façons suivantes:
Server.Transfer(Session["PreviousPage"].ToString(), false);
ou
Response.Redirect(Session["PreviousPage"].ToString(), false);
Vous pouvez également obtenir l'URL de la page d'appel de cette façon:
Request.ServerVariables("HTTP_REFERER")
Autres conseils
Vous pouvez passer dans via une propriété comme le ReturnUrl
similaire comment une page de connexion fonctionne. Ce genre est de la façon dont vous le faites là-haut.
Vous pouvez également essayer d'utiliser le HttpContext.Current.Request.UrlReferrer
pour voir qui vous a référé.
Vous pouvez utiliser Request.UrlReferrer.OriginalString
pour obtenir l'URI de la page visitée.