2010-01-11 6 views
12

Quand je fais la validation sur le terrain dans Asp.Net MVC, il est généré les classes CSS d'erreur suivant:Asp.Net MVC - Changer le nom de la classe d'erreur

  • entrée validation d'erreur
  • champ validation erreur

Y a-t-il un moyen de changer les noms des classes d'erreurs générées?

J'utilise xVal.

Répondre

10

Je ne connais pas xVal mais en ce qui concerne ASP.NET MVC, si vous regardez the source, vous verrez des chaînes statiques en lecture seule qui représentent ces valeurs.

public static readonly string ValidationInputCssClassName = "input-validation-error"; 
public static readonly string ValidationMessageCssClassName = "field-validation-error"; 
public static readonly string ValidationSummaryCssClassName = "validation-summary-errors"; 

Donc, soit vous modifier la source à votre goût (qui peut aussi fixer xVal) ou modifier le code de délivrer en sortie utiliser des valeurs différentes en quelque sorte.

Si xVal utilise jQuery Validation (ce que je pense qu'il fait ...?) Vous pouvez changer sa valeur par défaut pour l'option 'errorClass'. My answer here pourrait vous aider dans cette voie.

HTHS,
Charles

3

Voici ce que je faisais:

private void ChangeValidationClassNames() 
{ 
    var helper = new HtmlHelper(new ViewContext(), new ViewPage()); 
    SetPublicStaticReadonly("ValidationInputCssClassName", helper, "errInput"); 
    SetPublicStaticReadonly("ValidationMessageCssClassName", helper, "errMsg"); 
} 

public void SetPublicStaticReadonly(string readonlyPropName, object instance, object value) 
{    
    var field = instance.GetType().GetField(readonlyPropName, BindingFlags.Static | BindingFlags.Public); 
    if (field == null) 
     throw new NullReferenceException(string.Format("public static readonly field '{0}' not found in '{1}'", readonlyPropName, instance)); 
    field.SetValue(instance, value); 
} 
+0

@TweetZz: vous n'avez pas besoin d'une instance de HtmlHelper pour ch ange champs statiques. vous pouvez obtenir le champ à partir de 'typeof (HtmlHelper)', et appeler 'SetValue (null, value)'. –

+0

Où les gars placent-ils ce code? – Shimmy

+0

Dans un ActionFilterAttribute .. – TweeZz

1

Plus solution de nettoyage peut être:

<script type="text/javascript"> 
 
    $(document).ready(function(){ 
 
     $('.input-validation-error').addClass('CustomErrorClass').removeClass('input-validation-error'); 
 
     $('.field-validation-error').addClass('CustomErrorClass').removeClass('field-validation-error'); 
 
    }); 
 
</script>

Questions connexes