I have an ASP.NET MVC 3 application which has a post action called Create:
[HttpPost]
public virtual ActionResult Create(Issues issues)
{
if (ModelState.IsValid)
{
context.Issues.Add(issues);
context.SaveChanges();
return RedirectToAction("Index");
}
return View(issues);
}
If I double click on the submit button by mistake, it’ll Create 2x issues. Is there a way of preventing this, without the use of javascript and disabling the button, I thought the whole use of using a RedirectToAction was to prevent this, by using the Post/Redirect/Get design pattern?
The pattern you mentioned (Post/Redirect/Get design pattern) prevents page refreshes from double posting because the last action is a GET, not the POST.
If you want to prevent double clicks from double posting, you could:
And there maybe a few more ways… I think disabling the button is probably the easiest because you’re redirecting to another page anyway.