asp.net阻止表单提交两次
|
我有一个Web表单Web应用程序(asp.net 2.0).当用户提交表单时,我的提交链接实际上已经消失,因此他们无法再次提交.但是,他们可以按F5,这会导致另一个插入数据库,我不希望发生这种情况. 是否存在某种设置,如果/当他们按F5告诉页面时我可以设置 – 不再提交? 解决方法听起来你正在对同一页面进行回发,然后在将同一页面重新显示给用户之前插入数据库,减去提交按钮?如果是这种情况,解决问题的最简单方法是对同一页面执行Response.Redirect() – 因此当用户按下F5时,它会将GET请求重新加载到页面而不是POST. 说明: 当您在ASP.NET中进行回发时,浏览器将向服务器发送POST request.我不知道你在HTTP方法中的背景,但即使你是网络编程的新手,你也可能在浏览器中遇到过这些类型的请求的影响.有时,当您在网站上提交表单并点击后退按钮时,会说“您想重新提交表单数据”.这是因为这些表单使用HTTP POST方法将数据发送到服务器.在这种情况下后退按钮的效果与按F5时的效果相同 – 浏览器重复完全相同的POST请求(这需要某种类型的表单数据,在这些情况下,它与您最后提交的数据相同时间). 当您使用Response.Redirect()时,服务器正在发出HTTP status code 302(临时移动资源)以响应请求.然后,浏览器将发出GET请求,告知其已被告知要重定向到的资源(在这种情况下,是您的确切页面). 现在,当您在页面上时,它会被返回,就像您从链接访问它或直接将其键入地址栏一样.如果您这次按F5,将发出GET请求而不是POST. 我建议你download Firebug并激活“Net”面板.您可以准确地查看组成请求/响应的内容以及页面上所有请求的列表. 更多资源: 如果您喜欢冒险,可以查看even more status codes(顺便说一句,我实际上在一个应用程序中使用了418,我正在努力解决ASP.NET的Forms身份验证问题). 如果Firebug还不够,你可以下载Fiddler,然后根据自己的喜好手动和重播请求. 如果GET和POST不够,您可以使用其他方法更改应用程序中的状态.您可能听说过RESTful architecture,它基本上使用HTTP方法GET,PUT,POST和DELETE. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-web-api – ASP.NET WebApi测试 – 断言请求返回40
- ASP.Net C#ResolveClientUrl里面的类
- 标签 – 如何使用像asp这样的Razor:Literal?
- asp.net-mvc-3 – 与SQL Server建立连接时发生与网络相关或
- 是*不*使用asp.net成员资格提供程序一个坏主意?
- asp.net-mvc – Sammy.js和Knockout.js =模板没有模板?
- vs2008中文版提供下载(包含中文msdn),包括vs2008序列号和破
- asp.net – 如何跟踪Linq-to-sql DataContext上的查询
- asp.net-mvc-4 – 返回Web API中的自定义错误对象
- asp.net-mvc – 为什么ASP.NET MVC在从IE而不是firefox发布
- asp.net – 如何使RequiredFieldValidator更改父
- 将变量从ASP.net传递给JavaScript
- asp.net-mvc – ASP.NET MVC – 从单个控制器动作
- 用AJAX实现的无刷新的分页实现代码(asp.net)
- 一个ASP.NET应用程序(意外)在多个应用程序域或频
- 如何获取基于PhoneGap的应用程序来对ASP.NET For
- asp.net – JQGrid不显示数据
- asp.net-mvc – ASP.Net MVC加载进度指标
- .net – Textboxfor mvc3日期格式和日期验证
- asp.net-web-api – 标题中的API密钥与swashbuck
