Ho un'annotazione richiesto sul mio modello:MVC3 convalida del client non funziona
[Required(ErrorMessage = "Please choose an option")]
public bool? AnyDebts { get; set; }
mi hanno permesso di convalida del client nel web.config:
<appSettings>
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
</appSettings>
ho fatto riferimento gli script jQuery nel mio layout:
<script src="@Url.Content("~/Scripts/jquery-1.4.4.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery-1.4.4.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery-ui-1.8.6.custom.min.js")" type="text/javascript"></script>
Cos'altro devo fare per rendere valida la validazione del client? La convalida del lato server è ancora funzionante.
MODIFICA:
Ah ah!
Ho trovato che la validazione lato client sta funzionando.
Tuttavia, in particolare, ho trovato che le proprietà del modello non vengono convalidate lato client sono quelle annotate con attributi personalizzati. Per esempio:
[BooleanRequiredToBeTrue(ErrorMessage = "You must agree to the statements listed")]
public bool StatementAgree { get; set; }
Il codice per l'attributo:
public class BooleanRequiredToBeTrueAttribute: RequiredAttribute
{
public override bool IsValid(object value)
{
return value != null && (bool)value;
}
}
sono questi non convalidato più lato client?
perché stai chiamando jquery due volte? – craigmoliver