当我在 Asp.Net MVC 中进行字段验证时,它会生成以下错误 css 类:
- 输入验证错误
- 字段验证错误
有没有办法可以更改生成的错误类的名称?
我使用 xVal。
当我在 Asp.Net MVC 中进行字段验证时,它会生成以下错误 css 类:
有没有办法可以更改生成的错误类的名称?
我使用 xVal。
我不了解 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,
查尔斯
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);
}
更清洁的解决方案可能是:
<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>