Asp.Net MVC - Cambiar nombre de la clase de error
-
20-09-2019 - |
Pregunta
Cuando hago la validación de campo en Asp.Net MVC, se generó las siguientes clases CSS de error:
- entrada-validación-error
- campo de validación de errores
¿Hay una manera que puedo cambiar los nombres de las clases de error que se generan?
Yo uso XVal.
Solución
No sé sobre XVal pero por lo que el lado de ASP.NET MVC cosas ir, si usted tiene un vistazo a la fuente verá que hay algunas cadenas de sólo lectura estática que representan estos valores.
public static readonly string ValidationInputCssClassName = "input-validation-error";
public static readonly string ValidationMessageCssClassName = "field-validation-error";
public static readonly string ValidationSummaryCssClassName = "validation-summary-errors";
Así que, o editar la fuente a su gusto (que también puede fijar XVal) o alterar el código de salida a utilizar valores diferentes de alguna manera.
Si XVal está utilizando jQuery Validación (que yo creo que sí ...?) Que podría cambiar su valor por defecto de la opción 'errorClass'. Mi respuesta aquí que podría ayudar a lo largo de esa camino.
HTHS, España Charles
Otros consejos
Esto es lo que hice:
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);
}
Más solución limpiadora puede ser:
<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>