2010-03-16 4 views
0

Я отправляю данные на странице под названием process.aspx, который обрабатывает некоторые бизнес-логики с помощью следующего кода:Как мне вернуться на ту же самую страницу после отправки формы?

<%@ Page Language="C#" %> 
<% 
    MyData.process(Request); 
    Response.Redirect("") 
%> 

эту страницу, я буду называть из множества страниц. Есть ли способ узнать, с какой страницы была отправлена ​​моя форма? Я думал что-то вдоль линии письма:

<form id="frmSystem" method="post" action="process.aspx?page=<%= %>"> 

Однако я не знаю, что писать в между <%= %>, чтобы получить текущее имя страницы. Может ли кто-нибудь помочь?

ответ

2

Вы можете захватить 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") 
+0

Добро пожаловать. Я думаю, что это хорошая функция для веб-сайта, чтобы отправить пользователя обратно, откуда они пришли. – DOK

+0

Помните, что Request.Url.PathAndQuery можно подделать. Способ сохранения предыдущей страницы в сеансе, похоже, лучше всего подходит в этой ситуации. – citronas

+0

Это сделало это, я нашел команду Request.UrlReferrer.PathAndQuery! Спасибо друг! –

0

Вы можете сдать его через свойство, подобное ReturnUrl, как работает страница с подпиской. Вот как вы это делаете.

Вы также можете попытаться использовать HttpContext.Current.Request.UrlReferrer, чтобы узнать, кто вас указал.

+0

HttpContext.Current.Request.UrlReferrer работает просто dandy, мне просто нужно использовать только имя страницы + строку запроса. –

0

Вы можете использовать Request.UrlReferrer.OriginalString, чтобы получить URI ссылочной страницы.

+0

Кажется, что это путь, есть способ получить только эту строку и строку запроса из этого метода? Я пытаюсь это сделать, и он работает просто dandy, все, что мне нужно, это взять только имя страницы + строку запроса. –

+0

Если вы хотите весь путь с помощью http: part, вы можете использовать Request.UrlReferrer.PathAndQuery. Если вы действительно хотите ТОЛЬКО строку anme и строку запроса, используйте System.IO.Path (Request.UrlReferrer.LocalPath) + Request.UrlReferrer.Query –