Asp.Net MVC - 更改错误类的名称
问题描述:
答
我不知道xVal,但就ASP.NET MVC方面而言,如果你看看the source,你会看到有一些静态只读字符串代表这些值。
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验证(我认为它确实...?),您可以将其更改为'errorClass'选项的默认值。 My answer here可以帮助你沿着这条路。
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>
@TweetZz:你不需要一个HtmlHelper实例ange静态字段。你可以通过'typeof(HtmlHelper)'得到这个字段,并调用'SetValue(null,value)'。 – 2012-02-07 07:41:21
你们在哪里放置这些代码? – Shimmy 2015-03-29 01:12:18
在ActionFilterAttribute中.. – TweeZz 2015-03-31 10:48:21