Asp.net 在提交之前,按back键将使用右侧的值预先填充输入

Asp.net 在提交之前,按back键将使用右侧的值预先填充输入,asp.net,html,back,Asp.net,Html,Back,使用以下htlm: <html> <body> <form action="#"> <p><input type="text"></input></p> </form> </body> </html> 加载时,输入值为空。 将其更改为“1”并输入(提交) 页面将显示“1” 按“上一步”将使用输入的“

使用以下htlm:

<html>
    <body>
        <form action="#">
            <p><input type="text"></input></p>
        </form>
    </body>
</html>

加载时,输入值为空。 将其更改为“1”并输入(提交) 页面将显示“1” 按“上一步”将使用输入的“1”而不是初始状态(空)预先填充页面

我的真实世界应用程序是一个asp.net页面,页面顶部包含搜索输入,底部包含搜索结果。按下“后退”键时,字段将预先填充与下面显示的结果中显示的值不一致的值

如何使浏览器的“后退”按钮在页面中预先填充与历史对应页面的初始状态相对应的值

我不想禁用asp.net缓存,但如果没有其他选择,我也不介意。 不过,谷歌所有关于禁用缓存的点击都不起作用

更新
我认为输入值应该与历史记录列表中条目的初始状态相对应。 事实似乎并非如此。它对应于post之前的状态

  • http:\localhost:8080\index.html=>input=“”
  • http:\localhost:8080\index.html?val=2=>input=“2”
  • http:\localhost:8080\index.html=>input=“2”

  • 另一种方法是在文档加载完成时用JavaScript清除字段。

    另一种方法是在文档加载完成时用JavaScript清除字段。

    您可能会引入一个“虚拟”URL变量,以诱使浏览器相信它是一个全新的页面

    www.example.com/form.aspx?dummy=3423902
    
    使用一些javascript使浏览器使用新的随机
    dummy=

    服务器只是读取这个值

    我知道这将导致2回每次,但肯定会工作。请先使用http头“要求”浏览器不要缓存—尽管我相信您会说:

    我宁愿不禁用asp.net 缓存,但不介意没有 可供替代的所有的谷歌点击 但是,禁用缓存不起作用


    这不起作用。

    您可能会引入一个“虚拟”URL变量,以诱使浏览器相信这是一个全新的页面

    www.example.com/form.aspx?dummy=3423902
    
    使用一些javascript使浏览器使用新的随机
    dummy=

    服务器只是读取这个值

    我知道这将导致2回每次,但肯定会工作。请先使用http头“要求”浏览器不要缓存—尽管我相信您会说:

    我宁愿不禁用asp.net 缓存,但不介意没有 可供替代的所有的谷歌点击 但是,禁用缓存不起作用


    这不管用。

    这应该管用。这是一个jquery函数,因此您需要在页面中引用它。例如,这将把输入项的值设置为“A”。。。

    
    $(document).ready(function() {
        // this code will be run immediately after the page has displayed.
        // "ROpt" is the id of the field.
        $("#ROpt").val("A");
     });
    

    这应该行得通。这是一个jquery函数,因此您需要在页面中引用它。例如,这将把输入项的值设置为“A”。。。

    
    $(document).ready(function() {
        // this code will be run immediately after the page has displayed.
        // "ROpt" is the id of the field.
        $("#ROpt").val("A");
     });
    

    你确定任何缓存禁用(浏览器端)都不起作用吗?@m.edmondson:在进一步搜索之后,我找到了一种有效的方法。有点遗憾的是,我失去了缓存功能,但就这样吧…在我的情况下,我下面的答案是正确的-阅读底部的部分这里有一些解决方案,你确定任何缓存禁用(浏览器端)都不起作用吗?@m.edmondson:在进一步搜索之后,我找到了一种工作方式。有点遗憾的是,我失去了缓存功能,但就这样吧…在我的情况下,我下面的答案是正确的-阅读底部的部分这里有一些解决方案我不想清除它们,我想将它们设置为正确的值我不想清除它们,我想将它们设置为正确的值是,如果我能在编译时知道输入的值应该是什么,这将是一个选项。另外,通过Ajax调用获取它们需要我记录所有请求。是的,如果我能在编译时知道输入的值应该是什么,这将是一个选项。另外,通过Ajax调用获取它们需要我记录所有请求。这也是不可能的。第一个选项会起作用,尽管我认为它有点牵强,仍然会使我失去所有缓存。第一个选项会起作用,尽管我认为它有点牵强,仍然会使我失去所有缓存。