2010-01-11 16 views
12

Quando faccio la convalida campo in Asp.Net MVC, è generato errore le seguenti classi CSS:Asp.Net MVC - Cambiare nome della classe errore

  • input-convalida errori
  • di convalida sul campo di errori

Esiste un modo per modificare i nomi delle classi di errore generate?

Io uso xVal.

risposta

10

io non conoscono xVal ma per quanto riguarda il lato ASP.NET MVC di cose andare, se si dispone di uno sguardo a the source vedrete ci sono alcune stringhe di sola lettura statiche che rappresentano questi valori.

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

Quindi, o si modifica la fonte di vostro gradimento (che può anche risolvere xVal) o alterare il codice viene passato a usare valori diversi in qualche modo.

Se xVal sta utilizzando jQuery Validation (che penso che faccia ...?) È possibile modificare il valore predefinito per l'opzione 'errorClass'. My answer here potrebbe aiutarti lungo quel percorso.

HTHS,
Charles

3

Ecco quello che ho fatto:

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: non lo fai bisogno di un'istanza HtmlHelper per ch ange campi statici. puoi ottenere il campo solo da 'typeof (HtmlHelper)', e chiamare 'SetValue (null, value)'. –

+0

Dove state mettendo questo codice? – Shimmy

+0

In un ActionFilterAttribute .. – TweeZz

1

Più soluzione più pulita può essere:

<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>

Problemi correlati