【发布时间】:2021-05-03 21:02:10
【问题描述】:
我遇到了一个函数问题:当我单击一个按钮时,一个代码块正在运行,但是当用户多次单击该按钮或链接时,该代码块运行了多次而没有完成运行。
所以有时它会将数据写入数据库两次。我正在使用 ASP.NET MVC 和 C#。
这是我的示例代码:
[Route("Reservations")]
public ActionResult Index()
{
MTAPI mTAPI = new MTAPI();
mTAPI.VeriAl();
reservations.EditPassedTourTime();
reservation.Raccount = reservations.GetAllResAccountLMTD();
return View(reservation);
}
public void VeriAl()
{
int VoucherId = rservations.GetLastVoucher().fldId;
using (example _db= new example())
{
var newdata =_db.Voucher();
newdata.beforerecordId = VoucherId;
_db.Voucher.Add(newdata);
_db.SaveChanges();
}
}
【问题讨论】:
-
您可以在第一次点击后禁用提交按钮(使用 Javascript 和点击处理程序),也可以使用Post/Redirect/Get pattern
-
我认为这不能解决我的问题,因为代码块可以通过刷新页面来触发,所以如果用户按下 f5 不止一个,我也会遇到同样的问题。感谢您的快速响应。
标签: c#