【问题标题】:Asp.Net MVC - Change error class nameAsp.Net MVC - 更改错误类名称
【发布时间】:2011-01-03 21:48:22
【问题描述】:

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

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

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

我使用 xVal。

【问题讨论】:

    标签: asp.net-mvc validation xval


    【解决方案1】:

    我不了解 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 Validation(我认为它确实...?),您可以更改它的“errorClass”选项的默认值。 My answer here 可以帮助你走这条路。

    HTH,
    查尔斯

    【讨论】:

      【解决方案2】:

      这就是我所做的:

      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);
      }
      

      【讨论】:

      • @TweetZz:您不需要 HtmlHelper 实例来更改静态字段。您可以从typeof(HtmlHelper) 获取该字段,然后致电SetValue(null, value)
      【解决方案3】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-03-01
        • 2018-09-07
        • 2017-02-11
        • 1970-01-01
        • 2016-01-25
        相关资源
        最近更新 更多