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.
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
Czy istnieje sposób na zmianę nazw generowanych klas błędów?
Używam xVal.
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
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);
}
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>
@TweetZz: Nie potrzebujesz instancji HtmlHelper do ch ange statyczne pola. możesz pobrać pole tylko z 'typeof (HtmlHelper)' i wywołaj 'SetValue (null, value)'. –
Gdzie umieszczacie ten kod? – Shimmy
W obiekcie ActionFilterAttribute .. – TweeZz