Когда я выполняю проверку поля в Asp.Net MVC, он генерирует следующие классы ошибок css:
- ввод-проверка ошибки
- полевой проверки ошибок
Есть ли способ изменить имена генерируемых классов ошибок?
Я использую xVal.
Когда я выполняю проверку поля в Asp.Net MVC, он генерирует следующие классы ошибок css:
Есть ли способ изменить имена генерируемых классов ошибок?
Я использую xVal.
Я не знаю о xVal, но насколько это касается ASP.NET MVC, если вы посмотрите на источник вы увидите, что есть несколько статических строк readonly, которые представляют эти значения.
public static readonly string ValidationInputCssClassName = "input-validation-error";
public static readonly string ValidationMessageCssClassName = "field-validation-error";
public static readonly string ValidationSummaryCssClassName = "validation-summary-errors";
Итак, либо вы редактируете источник по своему вкусу (который также может исправить xVal), либо измените код вывода, чтобы каким-то образом использовать разные значения.
Если xVal использует jQuery Validation (что, я думаю, это делает...?), вы можете изменить его значение по умолчанию для опции "errorClass". Мой ответ здесь может помочь вам на этом пути.
HTHS,
Чарльз
Вот что я сделал:
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);
}
Более чистое решение может быть:
<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>