Asp.Net MVC - Изменить имя класса ошибки - PullRequest
14 голосов
/ 11 января 2010

Когда я делаю проверку поля в Asp.Net MVC, генерируются следующие классы ошибок css:

  • ввод-проверка ошибок
  • поля проверки ошибок

Есть ли способ изменить имена генерируемых классов ошибок?

Я использую xVal.

Ответы [ 3 ]

11 голосов
/ 11 января 2010

Я не знаю о xVal, но что касается ASP.NET MVC, если вы посмотрите на источник , вы увидите, что есть некоторые статические строки только для чтения, которые представляют эти значения.

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

3 голосов
/ 17 мая 2011

Вот что я сделал:

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 голосов
/ 06 января 2016

Более чистое решение может быть:

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