使用ASP.net刷新/重新加载副作用?
我在web& ASP.Net开发,所以请耐心等待.在测试我们的网页的过程中,我注意到如果用户单击“刷新/重新加载”,并在“重新发送信息”对话框上出现提示时单击“重试”,则在用户选择之前触发的最后一个事件“刷新”,随后将再次解雇.
作为一个例子,我们有“上一页”和“下一页”导航按钮,允许用户浏览一系列问题.如果运算符点击“刷新/重新加载”,那么用户按下最后一个导航按钮将再次点火.这实际上是有道理的,但净效果是用户最终在他以前查看的下一页或上一页上.这种事情有解决方法吗? 解决方法
这是由于您处理
PostBacks的方式.
有一点背景是必要的: Web是“无状态的”,这意味着从客户端到服务器的每个请求都与之前的请求或之后的请求无关.没有“国家”维持.如果您查看HTTP级别,它只是发送到服务器的文本blob,上面写着“向我发送此信息”,然后服务器将其发送回去.没有“我是3分钟前在这里的同一个用户,我想从上次发言时转到下一页”. ASP.NET解决此问题的方法是使用ViewState和回发.每次单击ASP.NET按钮时,它实际上都是提交一个包含隐藏字段和一堆编码数据的表单.该数据包含服务器需要“重建”页面状态的所有信息,因为它是最后一次.然后它可以执行“移动到下一页”,该命令是有意义的.当ASP.NET将HTML发送回客户端时,它会使用新数据更新该隐藏字段,再次表示页面的状态,就像现在一样.下次单击任何按钮时,将再次发送数据,再次重新构建页面并重复循环. 当用户点击“刷新”时,浏览器会询问他们是否要重新提交表单.他们正在重新提交他们上一次所做的相同数据. 对你的影响: 如果您尝试跟踪有关用户的任何数据或他们独立于ASP.NET ViewState执行的操作,则需要确保每次页面处理时都同步该数据. 您可能希望在ViewState中保留“当前页面”: ViewState.Add("CurrentPage",intCurrentPage); 因此,当您调用MoveNext事件处理程序时,您可以确保相对于页面移动,因为它是最后一次发送到客户端. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – 我想在div中使用li标签,但不推荐这是否有其他方
- asp.net-core-mvc – EntityFramework 7(EF7)迁移 DbContex
- asp.net-mvc-3 – 具有角色的AuthorizeAttribute但不对角色
- asp.net – WebForm_DoCallback定义
- asp.net渲染折线图
- asp.net-mvc – 奇怪的错误w / NinjectValidatorFactory更新
- asp.net-mvc – ASP.NET MVC Windows Azure组织身份验证
- asp.net-mvc – ASP.NET DisplayFormat dd / MM / yyyy无效
- 在asp.net webforms中使用jquery调用webmethod
- asp.net – 不能从代码隐藏在FormView上加载DropDownList?
- asp.net-mvc – 自定义HtmlHelper呈现文本而不是
- asp.net-mvc-4 – IE 10 Windows身份验证中的异步
- asp.net – .net http处理程序重定向到rtmp和fle
- asp.net – 找不到指定文化或中性文化的任何资源
- 三种属性操作性能比较:PropertyInfo + Expressi
- asp.net – 在Web api控制器中手动验证模型
- asp.net-mvc – 将组成员身份添加到自定义成员资
- asp.net-mvc – IIS没有提供.dat文件
- 什么是ASP.NET-MVC 5.1中的ManageController.cs及
- 如何在asp.net中从c#运行javascript