2011-11-30 137 views
0

我是新的和道歉,如果我问老年人的问题。我有一个asp.net web应用程序的问题,具体如下:旧的验证错误点击浏览器后退按钮

问题:

第1页上,我需要输入详细信息,然后单击下一步按钮转到第2页 如果我有任何验证错误,我清除它们,然后单击下一步按钮 如果我点击BROWSER BACK按钮,我期望在页面1上看到更正的细节,但它会加载页面1 WITH VALIDATION ERRORS。

更多信息:

1 alread的ASPX与到期设置为-1和 '无缓存' 两个Cache-Control和编译属性设置meta标签。

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

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

出于好奇,我在页面1上输入了不正确的细节,这种方式我被验证错误阻碍了3次。然后我纠正细节,并点击下一步按钮进入第2页。 在页面2上点击浏览器后退按钮,我会得到第三次验证错误,或者第1页的最新版本出现vlidation错误。

但是,浏览器后退按钮在前一页上没有验证错误时工作正常。

对不起,写了这么多的信息,只是想可能会让你更深入的了解这个问题。

+0

写更多信息几乎总是件好事。另一件事会让我们更容易为您提供答案,那就是添加(部分)用于页面的代码。 – Qqwy

+0

尝试'向导'控制。它做你想要的。 http://msdn.microsoft.com/en-us/library/fs0za4w6.aspx – Bazzz

回答

0

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

我们已经完成了很多工作,并且从未遇到类似您所描述的验证问题。我希望这可以帮助你一点。

+1

从.net 3.0开始,出现了一个'Wizard'控件。 http://msdn.microsoft.com/en-us/library/fs0za4w6.aspx – Bazzz

+0

啊,我忘了那件事。自从2.0开始我一直在创建我自己的,并且从未尝试过向导控件。 – JOpuckman

+0

试试吧! :)这很不错,使用ViewState来“记住”你在之前以及下一个屏幕中填充的内容。我几乎敢说使用Wizard控件也可以解决OP的问题。 – Bazzz

相关问题