我有一个ASP.NET Web窗体(C#),用户填写,它有一对夫妇的下拉,导致后背上,一些导致回发确认名单。我也使用了几个不同的更新面板。一个面板对用户输入可见,另一个面板在用户单击提交并将数据添加到数据库后出现。确认面板(最后一个面板)也向用户显示确认编号。ASP.NET Web窗体和F5刷新问题
最后一个面板显示器之后,我想阻止该网页重新加载当用户按F5或刷新。原因是,我不希望用户不小心点击刷新或F5并丢失确认号码和消息。当用户按下F5时,浏览器将其解释为想要加载新页面,并且在那时会话被清除(如下面的代码所示)。
我的第一个想法是重印信息和确认号码,并确保保持它的面板保持可见。我打算在下面的代码的else部分这样做 - 但由于有多个回发,并且它们都触发页面加载,所以这是行不通的,除非有确定回发是否是表单的结果元素或f5键。
protected void Page_Load(object sender, EventArgs e)
{
try
{
if (!IsPostBack)
{
Session.Clear();
GetList();
}
}
catch (Exception ex)
{
//Do something();
}
}
我见过的建议使用Javascript几个不同的岗位,但我避免如果可能的话,在偏远的机会,有人已经关闭了JavaScript。
这里是程序的流程: 用户打开的形式,在contactpanel领域填充和点击提交。这些字段使用ASP.NET服务器验证控件进行验证,如果一切正常,则将数据发送到数据库并返回确认编号。最后,将contactpanel设置为visibility = false,并将confirmationpanel设置为visibility = true。
希望这会有所帮助。感谢任何建议。
感谢,
我99%肯定,使用更新面板需要Javascript ......如果它工作围绕它通过刷新整个页面,那么你真的最好重新设计你的网站是如何工作的,如果必须工作,而JavaScript的 – Earlz
我认为禁用JavaScript的人可以忍受偶然按下F5的问题,这种情况经常不会发生......您试图通过服务器端解决方案来解决客户端问题,通常以难以维护的代码。 – Vache
使用Javascript。根据您的目标受众,您可能需要执行Javascript检测,并向没有它的访问者发出警告。如果这是2005年,我会说是的,你的担心是有效的,但没有。人们需要Javascript;对每个人都好。但是,说实话,我不明白Javascript是如何帮助你解决问题的。如果人们刷新页面,除非你想出另一个解决方案,否则它仍然会重置它。 –