我有一个用户填写的 ASP.NET Web 表单 (C#),它有几个导致回发的下拉列表和一些导致回发的验证。我还使用了几个不同的更新面板。一个面板对用户输入可见,而另一个面板在用户单击提交并将数据添加到数据库后出现。确认面板(最后一个面板)还向用户显示确认编号。
在最后一个面板显示后,我想防止在用户按 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。
这是程序的流程:用户打开表单,填写联系人面板中的字段,然后点击提交。这些字段使用 ASP.NET 服务器验证控件进行验证,如果一切正常,则将数据发送到数据库并返回确认号。最后,联系人面板设置为可见性=false,确认面板设置为可见性=true。
希望这可以帮助。感谢任何建议。
谢谢,