2010-03-25 8 views

Répondre

0

La validation au niveau du modèle signifie que le classeur Mvc par défaut ne connaît pas les propriétés que vous validez.

Asp.net Mvc n'est pas compatible avec l'affichage des erreurs au niveau du modèle et la mise en surbrillance des propriétés de la vue pour ce validateur.

je pourrais faire quelque chose comme cela pour obtenir le résultat visuel

<%var passwordCssClass = ViewData.ModelState["Key"] != null && ViewData.ModelState["Key"].Errors.Any() ? "model-error" : string.Empty; %> 
<%= Html.PasswordFor(x => x.Password, new { @class = passwordCssClass })%> 
<%= Html.PasswordFor(x => x.PasswordConfirm, new { @class = passwordCssClass })%> 

Vous devez inspecter la ModelState pour la clé que le ModelBinder utilise l'erreur de validation au niveau modèle. Remplacer "Clé" ci-dessus avec ce que vous trouvez, puis le changement de la classe css à w/e votre erreur classe css peut être.

Il ne s'agit pas d'un code de niveau de production, vous devez modifier Any() et vous assurer que vous recherchez le bon message d'erreur et éventuellement déplacer la logique dans le contrôleur et afficher la CssClass il devrait utiliser via votre modèle. Mais j'espère que vous y arriverez.

Questions connexes