单击浏览器后退按钮时出现旧验证错误

时间:2011-11-30 19:46:15

标签: javascript asp.net firefox

如果我问了一个古老的问题,我很新并且道歉。我有一个asp.net Web应用程序的问题,如下所示:

问题:

在第1页上,我需要输入详细信息,然后单击下一步按钮转到第2页 如果我有任何验证错误,我清除它们然后单击下一步按钮 在第2页上,如果我单击“浏览器返回”按钮,我希望在第1页上看到更正的详细信息,但它会加载第1页“验证错误”。

更多信息:

Page 1 alread的aspx有meta标签,expire设置为-1,'cache-cache'设置为cache-control和pragma属性。

在IE 8上,我得到“页面已过期”页面但在Firefox 8上,它会自动刷新页面而不是显示“页面已过期”页面。

即使在IE上也存在问题,当我尝试手动刷新页面时,我可以看到类似于FIrefox行为的旧验证错误。

出于好奇,我在第1页输入了不正确的详细信息,这样我被验证错误3次阻碍了。然后我更正细节并点击下一步按钮进入第2页。 在第2页上单击浏览器后退按钮,我将收到第三次收到的验证错误,或第1页的最新版本,其中包含vlidation错误。

但是,如果上一页没有验证错误,浏览器后退按钮就可以正常工作。

很抱歉写了这么多信息,只是想到可能会让你更深入地了解这个问题。

1 个答案:

答案 0 :(得分:0)

听起来您正在尝试创建一个类似向导的过程,您可以在最终目标之前让用户完成多个步骤(页面)。如果是这种情况,我过去处理的方式是使用Panel标签。为流程中的每个步骤添加一个Panel标记,并将表单元素添加到每个步骤。您还可以使用“下一步”按钮进入每个面板中的下一步。单击该按钮时,隐藏当前面板并取消隐藏下一个面板。您还可以将验证逻辑应用于按钮,以防止用户在输入错误的情况下前进。最后,您可以将它们重定向到另一个页面以获取“成功”消息或摘要。如果成功页面也是页面上的另一个面板,则如果处理不正确,用户将能够通过刷新页面重新提交表单。

我们已经做了很多,并且从未遇到过类似于您所描述的类型的验证问题。我希望这对你有所帮助。