asp.net-mvc-3 – 通过点击提交两次,避免在Asp.net MVC中提交重复的表单
发布时间:2020-05-23 18:55:40 所属栏目:asp.Net 来源:互联网
导读:我在Asp.net MVC中使用提交按钮提交表单。成功添加到数据库后,页面重定向。以下是代码: [HttpPost]public ActionResult Create(BrandPicView brandPic){ if (ModelState.IsValid) { if (!String.IsNullOrEmpty(brandPic.Picture.Pict
|
我在Asp.net MVC中使用提交按钮提交表单。成功添加到数据库后,页面重定向。以下是代码: [HttpPost]
public ActionResult Create(BrandPicView brandPic)
{
if (ModelState.IsValid)
{
if (!String.IsNullOrEmpty(brandPic.Picture.PictureUrl))
{
Picture picture = new Picture();
picture.PictureUrl = brandPic.Picture.PictureUrl;
db.Pictures.Add(picture);
brandPic.Brand.PictureId = picture.Id;
}
db.Brands.Add(brandPic.Brand);
db.SaveChanges();
return RedirectToAction("Index");
}
return View();
}
但是,在测试时,我看到如果表单被一次又一次点击,则会将多个条目提交并保存到数据库中。 如何将表单提交给服务器一次,那么我怎么能确保没有重复的提交。 解决方法我不认为这在评论中引用的答案是重复的,因为链接是针对Spring MVC的,而这个问题是针对.NET MVC的。我实际上花了几个小时回来,并提出了以下几点。这个JavaScript钩子很好地与不引人注意的jquery验证,您可以将其应用于任何具有< input type =“submit”的表单。注意它使用jquery 1.7的功能: $(document).on('invalid-form.validate','form',function () {
var button = $(this).find('input[type="submit"]');
setTimeout(function () {
button.removeAttr('disabled');
},1);
});
$(document).on('submit',function () {
var button = $(this).find('input[type="submit"]');
setTimeout(function () {
button.attr('disabled','disabled');
},0);
});
需要setTimeouts。否则,即使客户端验证失败,您也可能会遇到点击后禁用的按钮。我们有一个全局的javascript文件,以便它被自动应用到我们所有的表单。 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- Asp.net System.Web.HttpContext.Current.Session null in
- asp.net – 如何限制指定文件类型的下载
- asp.net – 在本地主机上开发Facebook Connect Javascript
- asp.net – 在部署过程中如何显示维护页面?
- asp.net-web-api – webapi批处理和委托处理程序
- asp.net-mvc – 如何使用MVC中的rout删除url中的控制器名称
- .net – 从Orchard内的主题渲染图像
- asp.net-mvc-3 – ASP.NET MVC 3 MSChart错误:此数据系列只
- asp.net-mvc – 如何清除ASP.NET MVC应用程序中文本框的发布
- webservice的两种调用方式
推荐文章
站长推荐
- ASP.NET MVC中的经典ASP(C#)
- asp.net-mvc – 构建与数据格式分离的ASP.NET MV
- entity-framework – 从Entity Framework 6升级到
- asp.net – RequiredFieldValidator – 如何摆脱
- asp.net-mvc-3 – 在MVC3中设置所选选项
- ASP.NET MVC 3动态控件
- asp.net – 在什么情况下HttpContext.Current.Se
- asp.net-core – 在asp.net vnext中使用Startup.
- asp.net – 为什么HttpContext.Current.User.Ide
- asp.net-mvc – Asp.Net MVC3 RC Razor视图:在块
热点阅读
