как мне вернуться на ту же страницу после отправки формы?

StackOverflow https://stackoverflow.com/questions/2455677

Вопрос

Я отправляю данные на страницу с именем 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 ссылающейся страницы.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top