【问题标题】:Stop ASP.NET PostBacks Showing As Separate Pages?停止显示为单独页面的 ASP.NET 回发?
【发布时间】:2012-01-10 00:16:06
【问题描述】:

我有一个 ASP.NET 表单,用户可以对其进行大量更改,每次更改页面 PostsBack 并更新详细信息。

如果用户点击浏览器的后退按钮,他们将返回页面的所有先前版本。

是否可以阻止浏览器将每个 PostBack 视为新页面?

所以他们会做出他们喜欢的任何更改,如果他们点击后退按钮,它会将他们带到以前的表单而不是相同的表单而是不同的版本?

我知道我可以使用 AJAX 来更新值,但我不是高级编码员,所以我尽量保持简单,因为我以前没有使用过 AJAX。

【问题讨论】:

  • 这种行为很常见。事实上,当您在这里创建一个新问题时,请尝试返回,我很确定您会再次点击表单。你为什么要试图消除这种行为?也许还有另一种方法可以解决根本问题。

标签: c# asp.net vb.net postback


【解决方案1】:

Ajax 是您唯一的解决方案。

无法从浏览器历史记录中删除页面。 Javascript 被明确拒绝该功能。

现在,您可以完全阻止他们使用后退按钮。虽然这可能会导致用户不满意,而且我不能 100% 确定它适用于所有浏览器。

function body_onload(){
    window.history.forward(1);
} 

【讨论】:

    【解决方案2】:

    你可以用一个技巧来做到这一点。

    在回发时,您可以将会话位设置为 true,表示他们提交了该表单。在您的回发中检查是否设置了该值。如果是,他们正在尝试再次执行此操作,您可以中止它。它本身不会阻止回发,但您可以控制逻辑并阻止它执行任何操作。

    我个人会探索 ajax,因为 Jquery 提供了一些很好的方法来做到这一点,这将是一种学习体验,但我想这会如您所要求的那样工作。在每个会话的基础上。如果您只想要 1 次提交,请使用数据库来存储活动。

    【讨论】:

      【解决方案3】:

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-04-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-12-10
        相关资源
        最近更新 更多