سؤال

عندما أقوم بتحقق من صحة الحقل في 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 (ما الذي أعتقد أنه يفعل ...؟) يمكنك تغيير القيمة الافتراضية لخيار "ErrorClass". إجابتي هنا يمكن أن تساعدك على هذا الطريق.

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>

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top