C# 发布表单后,如何返回到同一页面?

C# 发布表单后,如何返回到同一页面?,c#,asp.net,response.redirect,form-post,C#,Asp.net,Response.redirect,Form Post,我正在将数据发布到一个名为process.aspx的页面,该页面使用以下代码处理一些业务逻辑: <%@ Page Language="C#" %> <% MyData.process(Request); Response.Redirect("") %> 这个页面我将从各种页面调用。有没有办法知道我的表格是从哪一页提交的?我在想一些关于写作的东西: <form id="frmSystem" method="post" action="proce

我正在将数据发布到一个名为process.aspx的页面,该页面使用以下代码处理一些业务逻辑:

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

这个页面我将从各种页面调用。有没有办法知道我的表格是从哪一页提交的?我在想一些关于写作的东西:

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


但是,我不知道在
之间写什么来获取当前页面名称。有人能帮忙吗?

您可以通过类似于
ReturnUrl
的属性将其传入,类似于登录页面的工作方式。这就是你在那里做的事情


您还可以尝试使用
HttpContext.Current.Request.urlreferer
查看谁推荐了您。

您可以使用
Request.urlreferer.OriginalString
获取推荐页面的URI

您可以捕获调用页面URL并将其保存在
会话
视图状态
中,以备以后使用

例如,在加载页面中

Session["PreviousPage"] = Request.Url.ToString();
然后在最后一个事件中(可能是Savebutton\u Click或CloseButton\u Click),您可以通过以下任一方式进行重定向:

Server.Transfer(Session["PreviousPage"].ToString(), false);

您还可以通过以下方式获取调用页面的URL:

Request.ServerVariables("HTTP_REFERER")

这似乎是要走的路,有没有办法只从这个方法中获取页面和查询字符串?我正在尝试它,它工作得很好,我只需要获取页面名称+查询字符串。如果您希望整个路径不包含http:part,可以使用Request.urlreferer.PathAndQuery。如果您实际上只需要页面名称和查询字符串,请使用System.IO.Path(Request.UrlReferer.LocalPath)+Request.UrlReferer.QueryHttpContext.Current.Request.UrlReferer正在正常工作,我现在只需要使用页面名称+查询字符串。不客气。我认为这是一个很好的功能,网站发送用户从哪里来。请注意,Request.Url.PathAndQuery可以伪造。在会话中存储上一页的方法似乎最适合这种情况。这一种做到了,我找到了“Request.urlreferer.PathAndQuery”命令!谢谢你,伙计!
Request.ServerVariables("HTTP_REFERER")