Sto utilizzando MVC3 con Razor.
Ho incluso il seguente nel mio _Layout.cshtml:MVC3 Convalida lato client non funzionante
<script src="@Url.Content("~/Scripts/jquery.validate.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/MicrosoftMvcAjax.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/MicrosoftMvcValidation.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/MicrosoftAjax.js")" type="text/javascript"></script>
La mia forma assomiglia:
@{
ViewBag.Title = "Register";
Html.EnableClientValidation();
}
@using (Html.BeginForm("Register"))
{
<fieldset>
<p>
@Html.LabelFor(o => o.Email)
@Html.TextBoxFor(o => o.Email)
@Html.ValidationMessageFor(o => o.Email)
</p>
...
</fieldset>
}
mio ViewModel ha DataAnnotations (e implementa IValidatableObject), ed è valida durante il controllore azione. Tuttavia non riesco a essere in grado di utilizzare la convalida JS sul clientide senza pubblicare il modulo.
Cosa mi manca?
L'ho fatto. Ancora non è successo nulla La convalida dovrebbe avvenire ad ogni battitura? O quando la casella di testo perde l'attenzione? Se i campi vuoti con attributi richiesti non sono validi quando carico il modulo? – TDaver
@TDaver, per impostazione predefinita la convalida del client si verifica quando l'input perde lo stato attivo o quando si tenta di inviare il modulo. –