2010-01-11 10 views
12

Kiedy zrobić walidację pól w ASP.NET MVC, to generowany następujące klasy css błędach:Asp.Net MVC - Zmiana klasy błędu nazwa

  • input-validation-error
  • pola walidacji błędów

Czy istnieje sposób na zmianę nazw generowanych klas błędów?

Używam xVal.

Odpowiedz

10

Nie wiem o XVal, ale jeśli chodzi o stronę ASP.NET MVC, jeśli spojrzeć na the source zobaczysz, że istnieje kilka statycznych ciągów tylko do odczytu, które reprezentują te wartości.

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

Więc albo edytować źródła do własnych upodobań (który może również rozwiązać xVal) lub zmiany kodu wyprowadzania używania różnych wartości jakoś.

Jeśli xVal używa sprawdzania poprawności jQuery (co, jak sądzę, robi ...?), Możesz zmienić jego domyślną wartość dla opcji "errorClass". My answer here może pomóc Ci na tej drodze.

HTHS,
Charles

3

Oto co zrobiłem:

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: Nie potrzebujesz instancji HtmlHelper do ch ange statyczne pola. możesz pobrać pole tylko z 'typeof (HtmlHelper)' i wywołaj 'SetValue (null, value)'. –

+0

Gdzie umieszczacie ten kod? – Shimmy

+0

W obiekcie ActionFilterAttribute .. – TweeZz

1

Więcej roztwór czyszczący może być:

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

Powiązane problemy