asp.net如何由当前页面返回上一页面

3. 使用 returnUrl 参数 (最稳健)

这是最可靠、最可控的方法,尤其适用于登录、编辑等场景。通过在跳转链接中附加一个参数来明确指定返回地址。

实现步骤:

从 A 页面跳转到 B 页面时,将 A 页面的地址作为参数传递:

html


预览





<!-- 在 A.aspx 页面中 -->

<asp:HyperLink ID="HyperLink1" runat="server"

   NavigateUrl='<%# "B.aspx?returnUrl=" + HttpUtility.UrlEncode(Request.RawUrl) %>'>

   前往 B 页面

</asp:HyperLink>

在 B 页面处理完后,读取 returnUrl 参数并跳转回去:

csharp


编辑




// 在 B.aspx.cs 页面中

protected void btnSave_Click(object sender, EventArgs e)

{

   // 处理保存逻辑...


   string returnUrl = Request.QueryString["returnUrl"];

   if (!string.IsNullOrEmpty(returnUrl))

   {

       Response.Redirect(returnUrl);

   }

   else

   {

       Response.Redirect("~/Default.aspx");

   }

}

优点: 完全由开发者控制,不依赖浏览器行为,非常精准可靠。

缺点: 需要在每个跳转链接上手动添加参数。

  • 实现步骤:
    1. 从 A 页面跳转到 B 页面时,将 A 页面的地址作为参数传递:
      html
      预览
      1<!-- 在 A.aspx 页面中 --> 2<asp:HyperLink ID="HyperLink1" runat="server" 3 NavigateUrl='<%# "B.aspx?returnUrl=" + HttpUtility.UrlEncode(Request.RawUrl) %>'> 4 前往 B 页面 5</asp:HyperLink>
    2. 在 B 页面处理完后,读取 returnUrl 参数并跳转回去:
      csharp
      编辑
      1// 在 B.aspx.cs 页面中 2protected void btnSave_Click(object sender, EventArgs e) 3{ 4 // 处理保存逻辑... 5 6 string returnUrl = Request.QueryString["returnUrl"]; 7 if (!string.IsNullOrEmpty(returnUrl)) 8 { 9 Response.Redirect(returnUrl); 10 } 11 else 12 { 13 Response.Redirect("~/Default.aspx"); 14 } 15}
  • 优点: 完全由开发者控制,不依赖浏览器行为,非常精准可靠。
  • 缺点: 需要在每个跳转链接上手动添加参数。

渝公网安备 50011902000225号

渝ICP备18008233号-1