Como desativar a validação em uma ação HttpPost no ASP.NET MVC
Eu tenho uma Create-View assim ...
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")"
type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")"
type="text/javascript"></script>
@using (Html.BeginForm())
{
@Html.ValidationSummary(null, new { @class = "validation" })
...
<input class="cancel" type="submit" value="OK" />
...
<input name="submit" type="submit" value="Save" />
}
... e uma ação do controlador correspondente:
[HttpPost]
public ActionResult Create(string submit, MyViewModel myViewModel)
{
if (submit != null) // true, if "Save" button has been clicked
{
if (ModelState.IsValid)
{
// save model data
return RedirectToAction("Index");
}
}
else // if "OK" button has been clicked
{
// Disable somehow validation here so that
// no validation errors are displayed in ValidationSummary
}
// prepare some data in myViewModel ...
return View(myViewModel); // ... and display page again
}
Descobri que posso desativar a validação do lado do cliente configurandoclass="cancel"
no botão "OK". Isso funciona bem.
No entanto, a validação do lado do servidor ainda acontece. Existe uma maneira de desativá-lo em uma ação do controlador (consulte o bloco else na ação Criar acima)?
Obrigado pela ajuda!