как мне вернуться на ту же страницу после отправки формы?
-
20-09-2019 - |
Вопрос
Я отправляю данные на страницу с именем process.aspx, которая обрабатывает некоторую бизнес-логику с помощью следующего кода:
<%@ Page Language="C#" %>
<%
MyData.process(Request);
Response.Redirect("")
%>
на эту страницу я буду звонить с разных страниц.Есть ли какой-нибудь способ узнать, с какой страницы была отправлена моя форма?Я думал о чем-то вроде того, чтобы написать:
<form id="frmSystem" method="post" action="process.aspx?page=<%= %>">
Однако я не знаю, что написать между <%= %>
чтобы получить текущее название страницы.Кто-нибудь может помочь, пожалуйста?
Решение
Вы можете записать 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")
Другие советы
Вы могли бы передать его через свойство, подобное ReturnUrl
аналогично тому, как работает страница входа в систему.Примерно так вы это делаете там, наверху.
Вы также могли бы попробовать использовать HttpContext.Current.Request.UrlReferrer
чтобы узнать, кто вас направил.
Вы можете использовать Request.UrlReferrer.OriginalString
чтобы получить URI ссылающейся страницы.