【问题标题】:sending user back to previous page after submitting web form on current page, .net在当前页面,.net 上提交 Web 表单后将用户发送回上一页
【发布时间】:2013-05-07 23:11:45
【问题描述】:

在 .net 网站上,是否有一种简单的方法可以让某人回到他们在当前页面上发回表单之前的最后一页,而无需某种过度使用的面包屑系统?我知道这听起来有点令人困惑,但假设您在 Page1.aspx 上。您转到 Page2.aspx,它有一个 Web 表单。您填写回发给自己的网络表单。回发后,我想将它们发送回它们首先位于的任何页面,在本例中为:Page1.aspx。 Page1.aspx 显然是可变的。

我开始使用 history.go() 玩一些 javascript,但我无法让它正常工作。有什么建议吗?

【问题讨论】:

    标签: javascript asp.net .net webforms


    【解决方案1】:

    按照此处所述使用 Request.UrlReferrer 属性:

    Navigate to Previous Page in ASP.NET(Request.UrlReferrer)

    【讨论】:

    • 我也理解这种方法,但它需要将上一页保存在 ViewState 中。我试图通过直接利用 DOM 来避免这种类型的编程(因为有很多页面可能是引用者)。
    • 为此,每页的 ViewState 大小将是最小的。对其进行跟踪并查看。您只是将页面名称保存在 ViewState 中,而不是页面本身。
    • 啊,我搞定了。我以为我必须在每个引用页面上设置 ViewState,这将是很多工作。相反,我将 Page2.aspx 上的 ViewState 设置为 Request.UrlReferrer 中的任何内容。然后在回发后重定向回它。这绝对让我想到了正确的方向。
    【解决方案2】:

    您可以将必须​​返回的页面作为 url 参数发送,就像登录模块一样。

    例如,您使用此 URL page2.aspx?RetPage=Page1.aspx 转到 page2.aspx,当您完成 page2 后,您将获得 RetPage 并重定向到您在那里设置的任何值。

    【讨论】:

    • 与此相同.. 它需要我留下踪迹或面包屑才能追溯。这是完全可行的,只需要我浏览很多页面并添加它。
    • @optionsix 你可以试试和其他人,但他们不是 100% 保证他们总是工作。
    • 是的,我知道...我希望有一条捷径,但我知道这是一个很好的后备方案,如果有点笨拙的话。
    【解决方案3】:

    您可以将referrer (Page1.aspx) 传递给 Page2.aspx。然后 Page2.aspx 使用一个隐藏的输入字段,其中包含引用者。
    当访问者从 Page2 提交表单(给自己)时,表单处理程序会接收引用者并可以在结果页面中将其设置为 http-equiv="refresh"

    <html>    
      <head>      
        <title>Form Result</title>      
        <meta http-equiv="refresh" content="5;URL='Page1.aspx'" />    
      </head>    
      <body> 
        <p>Thank you for your input, you will automatically return to
           <a href="Page1.aspx/">the previous page in 5 seconds.</a>.</p> 
      </body>  
    </html>  
    

    通过将超时时间更改为 0 秒以上,用户仍然可以在自动返回到他原来的页面之前读取结果。

    希望这会有所帮助!

    【讨论】:

    • 我理解这种方法,但它需要我传递引荐来源网址,它仍然是一个面包屑。 “Page1.aspx”可以是 50 个不同的引荐页面中的任何一个,我必须在引荐来源中对每个页面进行编程,除非我对此不正确?
    • 是的,您从服务器获取引荐来源网址(如变量),您不必编写每个引荐页面的列表。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多