Domanda

Quando faccio la convalida campo in Asp.Net MVC, è generato errore le seguenti classi CSS:

  • ingresso-convalida errori
  • di convalida sul campo errori

C'è un modo che io possa cambiare i nomi delle classi di errore generati?

Io uso xVal.

È stato utile?

Soluzione

Non so circa xVal ma per quanto riguarda il lato ASP.NET MVC di cose andare, se si dispone di uno sguardo al la fonte 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) oppure modificare il codice viene passato a usare valori diversi in qualche modo.

Se xVal sta usando jQuery Validation (che credo lo fa ...?) Si potrebbe cambiare il suo valore di default per l'opzione 'errorClass'. La mia risposta qui potrebbe aiutarvi lungo che percorso.

HTHS,
Charles

Altri suggerimenti

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);
}

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>

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top