16

当我在 Asp.Net MVC 中进行字段验证时,它会生成以下错误 css 类:

  • 输入验证错误
  • 字段验证错误

有没有办法可以更改生成的错误类的名称?

我使用 xVal。

4

3 回答 3

12

我不了解 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”选项的默认值。我在这里的回答可以帮助你沿着这条路走下去。

HTH,
查尔斯

于 2010-01-11T20:21:07.133 回答
3

Here's what I did:

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);
}
于 2011-05-17T05:16:23.003 回答
0

更清洁的解决方案可能是:

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

于 2016-01-06T10:55:08.467 回答