我有一个ASP.NET 4.0 Web窗体。有一个我希望用户提交和检查的文本框。如果它是 是正确的,我会清空文本框,并且不希望用户能够重新提交该数据。在IE8中,用户可以回击(获得重新提交警告),如果刷新,它将重新提交该文本框中的数据。不允许重新提交页面
我已经尝试将值设置为null并禁用textbox的viewstate。
如何停止重新提交?
我有一个ASP.NET 4.0 Web窗体。有一个我希望用户提交和检查的文本框。如果它是 是正确的,我会清空文本框,并且不希望用户能够重新提交该数据。在IE8中,用户可以回击(获得重新提交警告),如果刷新,它将重新提交该文本框中的数据。不允许重新提交页面
我已经尝试将值设置为null并禁用textbox的viewstate。
如何停止重新提交?
我不认为对于后退按钮,你有任何选择,但要检查表单上的值再次提交,并确定如果它是重新提交的表单或不。 你有另一种选择,在提交后重定向到名为test.aspx的中间页面,该页面重定向到目标页面,因此在这种情况下,后退按钮将不起作用。
您可以使用AJAX发布文本框中的数据,由于您没有“返回”按钮,因此更好。
对于小东西(一个场,小信息)我用这一个:
$.post("savedata.aspx", { name: "John", time: "2pm" });
看看在others examples,它可能是有用的。
只记得在你的项目中引用jQuery。
提交后,您可以保存表单已被提交到会话变量中的事实。当表单被提交时,你首先测试这个变量。如果这个变量是真的(或者你设定的那个),那么什么都不做。用户可以刷新并且不会重新提交。
如果绝对至关重要的是提交文件永远不会被处理两次,请结合上述所有内容。
你不能禁用按钮本身吗?或者,在最后一种情况下,作为不好推荐的解决方法,您可以在首次提交时添加视图状态并检查该状态。 – Andre 2011-04-09 21:12:09
您无法停止重新提交,浏览器将执行浏览器要执行的操作。你可以检查提交,如果它是重复的,然后忽略它。可能你需要渲染一个隐藏的GUID或类似的东西来检查重复? – 2011-04-09 21:12:53