Как вернуться на ту же страницу после публикации формы?
Я публикую данные на странице с именем process.aspx, которая обрабатывает некоторую бизнес-логику с помощью следующего кода:
<%@ Page Language="C#" %>
<%
MyData.process(Request);
Response.Redirect("")
%>
на эту страницу я буду звонить с самых разных страниц. Есть ли какой-нибудь способ узнать, с какой страницы была отправлена моя форма? Я думал о чем-то вроде написания:
<form id="frmSystem" method="post" action="process.aspx?page=<%= %>">
Однако я не знаю, что писать между <%= %>
чтобы получить имя текущей страницы. Может кто-нибудь помочь, пожалуйста?
3 ответа
Вы можете захватить URL вызывающей страницы и удерживать его в Session
или же ViewState
для последующего использования.
Например, в Page_Load
,
Session["PreviousPage"] = Request.Url.ToString();
И затем в вашем последнем событии (возможно, Savebutton_Click или CloseButton_Click) вы можете выполнить перенаправление одним из следующих способов:
Server.Transfer(Session["PreviousPage"].ToString(), false);
или же
Response.Redirect(Session["PreviousPage"].ToString(), false);
Вы также можете получить URL-адрес вызывающей страницы следующим образом:
Request.ServerVariables("HTTP_REFERER")
Ты можешь использовать Request.UrlReferrer.OriginalString
чтобы получить URI ссылающейся страницы.
Вы можете передать его через свойство, подобное ReturnUrl
похоже, как работает страница входа. Это вроде как ты делаешь это там.
Вы также можете попробовать использовать HttpContext.Current.Request.UrlReferrer
чтобы увидеть, кто направил вас.