我有一个ASP.NET 4.0 Web表单。我希望用户提交并检查一个文本框。如果它是 更正,我删除了文本框,不希望用户能够重新提交该数据。在IE8中,用户可以回击(获得重新提交警告),如果他们刷新,则会重新提交该文本框中的数据。
我已尝试将值设置为null并禁用文本框的viewstate。
如何停止重新提交?
答案 0 :(得分:2)
您可以按照Wikipedia中的详细说明实现Post Redirect Get模式,以删除刷新和双重回发。
答案 1 :(得分:2)
如果提交永远不会被处理两次绝对至关重要,请结合以上所有内容。
答案 2 :(得分:1)
我不认为关于“后退”按钮,您可以选择,但要再次检查表单上的值,并确定是否是重新提交的表单。 您还有另外一个选择,即在提交后重定向到名为test.aspx的中间页面,该页面重定向到您的目标页面,因此在这种情况下,后退按钮将无效。
答案 3 :(得分:1)
您可以使用AJAX从文本框发布数据,这样更好,因为您没有“后退”按钮。
对于小东西(一个字段,小信息)我使用这个:
$.post("savedata.aspx", { name: "John", time: "2pm" } );
看看others examples,它可能会有用。
请记住在项目中引用jQuery。
答案 4 :(得分:1)
提交后,您可以保存表单已在会话变量中提交的事实。提交表单时,首先测试此变量。如果变量为真(或者你设置的那个),那么什么都不做。用户可以刷新,不会重新提交任何内容。