I have the following view, how can I not allow the user to submit the form ONLY once if the submit submit button was spammed
<h2>Add new Storage</h2>
<br /><br />
@using (Html.BeginForm()) {
@Html.ValidationSummary(true)
<div class="editor-label">
@Html.LabelFor(model => model.Name)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Name)
@Html.ValidationMessageFor(model => model.Name)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.DateFrom)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.DateFrom)
@Html.ValidationMessageFor(model => model.DateFrom)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.DateTo)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.DateTo)
@Html.ValidationMessageFor(model => model.DateTo)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.Size)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Size)
@Html.ValidationMessageFor(model => model.Size)
</div>
<br />
<p>
<input type="submit" value="Create" />
</p>
}
<br />
<div>
@Html.ActionLink("View all storage", "ViewStorage")
</div>
Controller:
[HttpGet]
public ActionResult Add()
{
ViewBag.Storage = new BusinessLayer.Storage().getAllStorage();
return View();
}
[HttpPost]
public ActionResult Add(Models.ActivityModel activity)
{
if (activity.Storage != null)
{
if (new BusinessLayer.Activities().addActivity(activity.Storage, activity.Name, activity.Date, activity.Keywords))
{
return RedirectToAction("Home", "Home");
}
}
else
{
ModelState.AddModelError("", "An error occurred, please try again!");
}
ViewBag.Storage = new BusinessLayer.Storage().getAllStorage();
return View(activity);
}